2013-10-07 4 views
1

Я знаю, что есть другие темы, но в моем случае это немного другое.Только последнее 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}"> 

Я попробовал х: слишком 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 элементов.

С наилучшими пожеланиями

ответ

2

ресурс в нужном месте решает эту проблему.

<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 работает нормально.