1

これについては他のスレッドがあることは知っていますが、私の場合は少し異なります。

別のリソース アセンブリのアイコンを使用したい

    <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 のアイテムがあるからです。

よろしくお願いします

4

1 に答える 1

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 は正常に動作します。

于 2013-10-09T18:05:51.363 に答える