2

我正在尝试将全局应用程序样式应用于某些控件类型,但是将这些样式添加到 Application.Resources 并没有将样式应用于我视图中的元素。

例子:

<Application x:Class="GUI.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 TextBox}">
            <Setter Property="Background" Value="AliceBlue"></Setter>
            <Setter Property="Margin" Value="20,20,20,20"></Setter>
            <Setter Property="FontStyle" Value="Italic"></Setter>
        </Style>
    </Application.Resources>
</Application>

在我发现的所有应用程序范围样式的示例中,这就是他们所说的方式,但它对我不起作用。我究竟做错了什么?

谢谢,亚历克斯。

4

2 回答 2

2

我自己解决了这个问题,问题是我没有使用该StartUpUri属性来打开我的初始应用程序视图,我更改了我的启动过程,所以它确实使用了这个属性,这解决了我的问题。

我的 App.xaml 现在看起来像这样:

<Application x:Class="GUI.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="/Views/Application/SplashView.xaml">
    <Application.Resources>
        <Style TargetType="{x:Type TextBox}">
            <Setter Property="Background" Value="Aqua"></Setter>
        </Style>
    </Application.Resources>
</Application>

谢谢,亚历克斯。

于 2012-06-08T05:20:38.647 回答
1

尽管这是一个旧帖子并已得到答复。我遇到了这个问题。我删除StartupUri并添加了空样式(我以问题为例):

<Application x:Class="GUI.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <Application.Resources>
        <!-- Added blank style first -->
        <Style TargetType="Rectangle" />
        <Style TargetType="{x:Type TextBox}">
            <Setter Property="Background" Value="AliceBlue"></Setter>
            <Setter Property="Margin" Value="20,20,20,20"></Setter>
            <Setter Property="FontStyle" Value="Italic"></Setter>
        </Style>
    </Application.Resources>
</Application>
于 2019-08-26T20:55:49.473 回答