首先想到,你會認爲Icon屬性只能包含圖像。但它實際上可以包含任何東西!當我以編程方式嘗試將Image屬性直接設置爲具有圖像路徑的字符串時,我意外發現了這一點。結果是它沒有顯示圖像,但是路徑的實際文本!然後我發現我必須先創建一個Image元素並將其設置爲Icon屬性。這使我想到的是,Image屬性是隻是位於圖標區域在菜單左側任意內容容器,我是對的。我試圖在那裏放一個按鈕,它工作!
這顯示了一個按鈕,菜單項的圖標區域中帶有文字「i」。當你點擊按鈕時,Button_Click事件被觸發(當你點擊按鈕時,LanguageMenu_Click不會被觸發)。
<MenuItem Name="LanguageMenu" Header="_Language" Click="LanguageMenu_Click">
<MenuItem.Icon>
<Button Click="Button_Click">i</Button>
</MenuItem.Icon>
</MenuItem>
這就導致了一個替代不必使圖像的圖標,而是用文字與符號字體,而不是顯示一個簡單的「圖標」。以下示例使用Wingdings字體,其中包含一個floppydisk符號。這個符號在字體映射到charachter <
,這在XAML特殊的意義,所以我們必須使用編碼版本<
代替。這像夢一樣運作!以下顯示了floppydisk符號作爲菜單項的圖標:
<MenuItem Name="mnuFileSave" Header="Save" Command="ApplicationCommands.Save">
<MenuItem.Icon>
<Label VerticalAlignment="Center" HorizontalAlignment="Center"
FontFamily="Wingdings"><</Label>
</MenuItem.Icon>
</MenuItem>
來源
2009-07-10 09:26:27
awe
這似乎正是我需要的,我可以插入一個切換按鈕堆裏面,而不需要創建的自定義控件添加引腳功能或打破鍵盤使用。謝謝 :) – Nidonocu 2008-09-13 06:53:49