我有一个名为的类MyWindow
,它派生自Window
:
using System.Windows;
public class MyWindow : Window
{
}
我使用该类MainWindow.xaml
:
<MyWpfApp:MyWindow x:Class="MyWpfApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:wpfApplication1="clr-namespace:WpfApplication1"
Title="MainWindow" Height="350" Width="525">
<Grid>
<TextBlock Text="Test" Foreground="Orange"/>
</Grid>
</MyWpfApp:MyWindow>
在App.xaml
文件中,我添加了以下样式来覆盖Background
所有MyWindow
实例的属性:
<Application.Resources>
<Style TargetType="MyWpfApp:MyWindow">
<Setter Property="Background" Value="Black"></Setter>
</Style>
</Application.Resources>
但这根本不会改变任何事情。没有样式应用于MainWindow
。
我应该怎么做才能对所有MyWindow
s 使用全局样式?
PS:我检查了“ Modern UI ”的代码,我看到他们在窗口的构造函数中应用了如下内容:
using System.Windows;
public class MyWindow : Window
{
public MyWindow()
{
DefaultSyleKey = typeof (MyWindow);
}
}
但如果我这样做,MainWindow 最终会在内容区域完全变黑。我猜想它的Template
属性会以某种方式被覆盖,但我不明白如何以及如何使其工作。