visual Studio 2017 擴展開發(二)《菜單圖標詳解》


在上一篇我們在菜單欄創建了一個菜單,菜單上顯示了一個圖標跟文本。那么我們自己創建的菜單如何修改自定義的菜單圖標呢。下面娓娓道來。。。。。

首先你要有一個圖,創建一個32位的位圖。這個位圖的像素是16px 16px,或者是16px 16px的倍數。

每個圖標都放在單個行中彼此相鄰的位圖上。使用Alpha通道在每個圖標中指示透明的位置。如果使用8位顏色深度,請使用RGB(255,0,255)作為透明度。32位彩色圖標是首選。

將圖標文件復制到項目的Resources文件夾下。

打開command.png我們看到這個位圖里面有六個圖標

位圖ID的定義方式與其他方法有點不同: 聲明從位圖條的guid開始,然后存在包含位圖的位圖條的資源id,在按鈕定義中使用元素的數字ids。該聲明的一個重要方面是元素id必須是位圖條中位圖的實際索引;

在CommandPackage.vsct文件的Symbols標簽里我們看到,name為guidImages的元素。創建GUID復制到value里。

IDSymbol的name屬性是圖標的id,value則表示的是條帶的位置,如果只有一個圖標那么value就是1咯.

 <GuidSymbol name="guidImages" value="{2834e3f7-2621-479a-bb6f-e9e48d5f4df4}" >
      <IDSymbol name="bmpPic1" value="1" />
      <IDSymbol name="bmpPic2" value="2" />
      <IDSymbol name="bmpPicSearch" value="3" />
      <IDSymbol name="bmpPicX" value="4" />
      <IDSymbol name="bmpPicArrows" value="5" />
      <IDSymbol name="bmpPicStrikethrough" value="6" />
    </GuidSymbol>

文件下的Bitmaps標簽下有一個Bitmaps,這個Bitmaps的GUID的值設置為guidImages,創建的GuidSymbol里的name的名稱。將href設置為位圖的相對路徑。usedList就是之前創建的IDSymbol的name,多個就用逗號隔開。

<Bitmap guid="guidImages" href="Resources\Command.png" usedList="bmpPic1, bmpPic2, bmpPicSearch, bmpPicX, bmpPicArrows, bmpPicStrikethrough"/>

在<Button>里面有個<Icon> guid就是我們創建的GuidSymbol的name,id則是IDSymbol的name.你要用哪個圖標捏,就寫上IDSymbol對應name.

 <Button guid="guidCommandPackageCmdSet" id="CommandId" priority="0x0100" type="Button">
        <Parent guid="guidCommandPackageCmdSet" id="MyMenuGroup" />
        <Icon guid="guidImages" id="bmpPicSearch" />
        <Strings>
          <ButtonText>測試菜單</ButtonText>
        </Strings>
      </Button>
    </Buttons>

運行,在實驗示例中我們可以看到自己創建的菜單命令的圖標是不是跟你位圖上對應的圖標。

結果:

 

本文僅是本人隨筆記錄,如有疑問歡迎在下面評論。轉載請寫明出處。如果對你有幫助,動動鼠標有下方給我點個贊。你的支持是我最大的動力。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM