【发布时间】:2012-07-06 13:28:51
【问题描述】:
我想为我的主窗口以及我的应用程序中的任何对话框或消息框使用相同的图标,所以我尝试在 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 并将它用作我的每个窗口类中的 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>
【问题讨论】:
-
根本就不行,还是在某些地方可以用?
-
不,它根本不起作用,甚至主窗口都不显示图标。不过,在主窗口的代码中使用相同的包 URI 设置图标效果很好。
-
您使用的是哪个“ResourceDictionary”?您是否将它包含在所有 Windows 中?请注意,系统对话框和消息框不会使用您的图标 - 只会使用您创建的图标。
-
我在上面编辑了我的问题。资源字典包含在我的 app.xaml 中。