只有最后一个菜单项获得图标(Only the last MenuItem gets the Icon

2019-09-26 18:09发布

我知道有这个,但我的情况下,它有点不同的其他线程。

我喜欢用一个图标从一个单独的资源组件

    <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:分享过,但这并没有在ResourceDictionary中工作的ResourceDictionary的原因。

    <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项。

最好的祝福

Answer 1:

在正确的地方的资源解决问题。

<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:共享工作正常。



文章来源: Only the last MenuItem gets the Icon