Только последний 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 отлично работает.