1

メイン ウィンドウと、アプリケーション内のダイアログまたはメッセージ ボックスに同じアイコンを使用したいので、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>
4

1 に答える 1

1

私が同じ問題を抱えていたので、この問題に遭遇した他の人については、これが機能しない理由についてもう少し説明を提供する同様の質問を参照してください。 app.xamlでデフォルトのWPFウィンドウスタイルを設定するには?

いくつかの提案もあります。1 つは tabina のソリューションであり、スタイルを各ウィンドウに個別に適用します。Window クラスを派生させるための興味深いアプローチが含まれていますが、回避策にすぎないため、個人的な好みに依存します。

于 2012-08-17T08:00:48.367 に答える