Application.Resources中定义的样式不适用于控件

时间:2012-06-08 04:50:52

标签: wpf xaml .net-4.0 styling

我正在尝试将全局应用程序样式应用于某些控件类型,但是将这些样式添加到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>

在我发现的应用程序范围样式的所有示例中,这都是他们说的方式,但它不适用于我。我做错了什么?

谢谢, 亚历克斯。

2 个答案:

答案 0 :(得分:2)

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

我的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>

谢谢, 亚历克斯。

答案 1 :(得分: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>