我不明白为什么会这样。我在 WPF 中有一个简单的应用程序。这个应用程序有一个窗口,并且在 App.xaml 中定义了一种样式,它改变了所有按钮的样式:
<Application x:Class="PruebasDesk.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="Window1.xaml">
<Application.Resources>
<Style TargetType="{x:Type Button}">
<Setter Property="Height" Value="23"></Setter>
<Setter Property="Width" Value="75"></Setter>
<Setter Property="Background" Value="DarkCyan"></Setter>
</Style>
</Application.Resources>
</Application>
这很好用,所有按钮都有样式。现在,问题来了。如果我不使用 StartupUri 属性来启动应用程序,而是使用 OnStartup 方法启动它:
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
Window1 win1 = new Window1();
win1.Show();
}
}
应用程序的按钮不会应用在 App.xaml 中定义的按钮样式。但是...如果我向 App.xaml 添加另一种样式,如下所示:
<Application x:Class="PruebasDesk.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>
<Application.Resources>
<Style TargetType="{x:Type Button}">
<Setter Property="Height" Value="23"></Setter>
<Setter Property="Width" Value="75"></Setter>
<Setter Property="Background" Value="DarkCyan"></Setter>
</Style>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Height" Value="23"></Setter>
<Setter Property="Width" Value="180"></Setter>
<Setter Property="Background" Value="Azure"></Setter>
</Style>
</Application.Resources>
</Application>
然后按钮应用样式!!!这对我来说真的很奇怪。有谁知道我是否遗漏了什么?