メイン ウィンドウと、アプリケーション内のダイアログまたはメッセージ ボックスに同じアイコンを使用したいので、ResourceDictionary で次のように設定しようとしました。
<Style TargetType="{x:Type Window}">
<Setter Property="Icon" Value="pack://application:,,,/MyReferenceAssemblyName;component/Images/myIcon.gif"></Setter>
</Style>
しかし、それはうまくいきません。異なるウィンドウで同じアイコンを共有するにはどうすればよいですか?
編集:
いくつかのグローバル設定を定義している単純なリソース ディクショナリ (Style.xaml) があります。App.xaml で次のように使用します。
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resources/ViewModelTemplates.xaml"/>
<ResourceDictionary Source="Resources/Style.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
ファイルには、ボタンの高さ、テキスト ボックスの前景色などの定義が含まれています。それらに問題はなく、アプリケーションが作成するすべてのパネルとウィンドウはこれらの設定を使用します。そのため、アプリケーション全体で使用するために、アイコンもそこで定義する必要があります。
.exe ファイルのアイコンを設定する方法を探していません。
編集:
やりたいことの解決策が見つからなかったので、最終的に ResourceDictionary に BitmapImage を作成し、それを各 Window-Classes で DynamicResource として使用しました。
<BitmapImage x:Key="ApplicationIcon" UriSource="pack://application:,,,/MyReferenceAssemblyName;component/Images/myIcon.gif"></BitmapImage>
と
<Window ...
Closing="Window_Closing"
Title="{Binding Title, UpdateSourceTrigger=PropertyChanged}"
IsEnabled="{Binding IsEnabled, FallbackValue=True, Mode=OneWay}"
WindowState="Maximized"
Icon="{DynamicResource ApplicationIcon}">
...
</Window>