在上一篇我們在菜單欄創建了一個菜單,菜單上顯示了一個圖標跟文本。那麼我們自己創建的菜單如何修改自定義的菜單圖標呢。下麵娓娓道來。。。。。 首先你要有一個圖,創建一個32位的點陣圖。這個點陣圖的像素是16px 16px,或者是16px 16px的倍數。 每個圖標都放在單個行中彼此相鄰的點陣圖上。使用Alph ...
在上一篇我們在菜單欄創建了一個菜單,菜單上顯示了一個圖標跟文本。那麼我們自己創建的菜單如何修改自定義的菜單圖標呢。下麵娓娓道來。。。。。
首先你要有一個圖,創建一個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>
運行,在實驗示例中我們可以看到自己創建的菜單命令的圖標是不是跟你點陣圖上對應的圖標。
結果:
本文僅是本人隨筆記錄,如有疑問歡迎在下麵評論。轉載請寫明出處。如果對你有幫助,動動滑鼠有下方給我點個贊。你的支持是我最大的動力。