我想对我的主窗口和任何对话框或消息框使用相同的图标,所以我尝试在资源字典中这样设置它:
<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>
对于遇到此问题的其他人,就像我遇到过相同的问题一样,请参阅一个类似的问题,它提供了更多解释为什么这不起作用。如何在 app.xaml 中设置默认的 WPF 窗口样式?
还有一些建议;一个是tabina的解决方案,并将样式分别应用于每个窗口。它包括一种派生 Window 类的有趣方法,但这取决于个人喜好,因为它们只是解决方法。