您已經創建了一個Image
控件,並試圖在視覺樹中放置兩次。由於所有控件只能有一個父母,因此您的Image
已斷開連接。因此,第二次使用它,第一次將斷開連接,導致您丟失的圖標。
可以解決這個問題,通過不添加Image
,但ImageSource
而不是你的資源:
<BitmapImage x:Key="DeleteIco" UriSource="pack://application:,,,/MyProject.myControl;component/Resources/Delete.ico" />
你的菜單有改變有點爲它工作,雖然:
<ContextMenu x:Key="MyMenu1">
<MenuItem Header="Delete">
<MenuItem.Icon>
<Image Source="{StaticResource DeleteIco}" Width="16" Height="16"/>
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
<ContextMenu x:Key="MyMenu2">
<MenuItem Header="Delete me">
<MenuItem.Icon>
<Image Source="{StaticResource DeleteIco}" Width="16" Height="16"/>
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
更新:
您還可以使用樣式來設置的一些基本屬性爲您
<Style TargetType="Image">
<Setter Property="Width" Value="16"/>
<Setter Property="Width" Value="16"/>
</Style>
或者使用樣式MenuItem
每次設置Icon
。
<Style TargetType="MenuItem" x:Key="DeleteMenuIcon">
<Setter Property="Icon">
<Setter.Value>
<Image Source="{StaticResource DeleteIco}" Width="16" Height="16"/>
</Setter.Value>
</Setter>
</Style>
而且菜單項:
<MenuItem Header="Delete me" Style="{StaticResource DeleteMenuIcon}" />
似乎是明確的......所以,任何方式不重複 ...> WIDTH = 「16」 HEIGHT = 「16」 的節點? –
serhio
2010-11-30 15:49:56
樣式..使用樣式爲你設置圖標..讓我更新我的答案;) – Arcturus 2010-11-30 15:52:42