如何使用ResourceDictionary设置窗口样式

本文关键字:窗口 样式 设置 ResourceDictionary 何使用 | 更新日期: 2023-09-27 18:19:35

我创建了一个名为Dictionary1.xaml的ResourceDictionary,代码如下:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="{x:Type Window}">
    <Setter Property="Background" Value="Red">
    </Setter>
</Style>

我在App.xaml或MainWindow.xaml中引用它,如下所示:

<Application.Resources>
    <ResourceDictionary Source="Dictionary1.xaml" />
</Application.Resources>
 <Window.Resources>
    <ResourceDictionary Source="Dictionary1.xaml" />
 </Window.Resources>

在视图设计器中,窗口的背景变为红色,但当应用程序运行时,它的背景是默认的(白色),为什么?怎么做?

如何使用ResourceDictionary设置窗口样式

您可以通过这种方式设置除Window之外的其他控件的样式!试着为Button、Lable等设置sytle,你会得到正确的结果。但对于一个窗口,你不会。

看看我的另一个答案,它可能会帮助你:如何在我的所有Windows上添加一个通用控件?

必须设置样式的x:Key并显式设置窗口的样式:

Style="{DynamicResource key_name}"

为什么视图设计器显示正确的结果?这可能是一个错误。vs2012/13的xaml设计器有很多错误,您可以在msdn中搜索或提交。我已经承诺了一个:

https://connect.microsoft.com/VisualStudio/feedbackdetail/view/925324/multibinding-report-an-issue-on-latest-vs-xaml-editor

但微软关闭了它,他们最近不会修复它。