Только последний MenuItem получает иконку

Я знаю, что есть другие темы по этому поводу, но в моем случае это немного по-другому.

Мне нравится использовать значок из отдельной сборки ресурса

    <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 в 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 элементов.

С уважением

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:Share отлично работает.

Другие вопросы по тегам