我知道还有其他关于这个的线程,但就我而言,它有点不同。
我喜欢使用来自单独资源程序集的图标
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsCheckable"
Value="true" />
<Condition Property="IsChecked"
Value="true" />
<Condition Property="Role"
Value="SubmenuItem" />
</MultiTrigger.Conditions>
<Setter Property="Icon">
<Setter.Value>
<Image Margin="1,0"
Width="16"
Source="pack://application:,,,/MyResourceAssembly;
component/Resources/Connect_24.png"/>
</Setter.Value>
</Setter>
</MultiTrigger>
这是在里面用的
<Style TargetType="{x:Type MenuItem}">
我也尝试了x:Share,但这不起作用,因为资源字典中的资源字典。
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MyResourceAssembly;component/Resources.xaml" />
<ResourceDictionary>
<Image x:Key="ConnectedIcon"
x:Shared="false"
Margin="1,0"
Width="16"
Source="pack://application:,,,/MyResourceAssembly;component/Resources/Connect_24.png"/>
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
有没有人有解决这个问题的想法。将图标单独添加到任何条目并没有为我解决问题,因为我的应用程序中大约有 200 个项目。
此致敬意
正确的位置的资源可以解决问题。
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Image x:Key="ConnectedIcon"
x:Shared="False"
Source="pack://application:,,,/MyResourceAssembly;component/Resources/Connect_24.png"
Margin="1,0"
Width="16"/>
</ResourceDictionary>
在这里,x:Share 工作正常。