Image
コントロールを作成し、それをビジュアルツリーに2回挿入しようとしました。すべてのコントロールに親が1つしかないため、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>
それともIcon
を毎回設定するMenuItem
のスタイルを使用します。
<Style TargetType="MenuItem" x:Key="DeleteMenuIcon">
<Setter Property="Icon">
<Setter.Value>
<Image Source="{StaticResource DeleteIco}" Width="16" Height="16"/>
</Setter.Value>
</Setter>
</Style>
とのMenuItem:
<MenuItem Header="Delete me" Style="{StaticResource DeleteMenuIcon}" />
どのような方法は、 ...>幅= "16" 高さ= "16" ノードを繰り返さないので...明らかであるように思わ? –
serhio
スタイル..あなたのアイコンを設定するためのスタイルを使用してください。私の答えを更新してください;) – Arcturus
これはもっと喜んでいます...しかしIcon = ""の代わりに を使うことを余儀なくされました: –
serhio