WPF样式未应用于边框元素

WPF样式未应用于边框元素,wpf,styles,Wpf,Styles,我正在尝试应用一种样式,以使某些边框元素的边框大小和颜色增加,如下所示: <Border Name="AlarmBorder"> <Border.Style> <Style TargetType="{x:Type Border}"> <Setter Property

我正在尝试应用一种样式,以使某些边框元素的边框大小和颜色增加,如下所示:

<Border Name="AlarmBorder">
                            <Border.Style>
                                <Style TargetType="{x:Type Border}">
                                    <Setter Property="Background">
                                        <Setter.Value>
                                            <SolidColorBrush Color="{Binding AlarmPriority.BackColour, Converter={StaticResource PriorityBrush}}" />
                                        </Setter.Value>
                                    </Setter>
                                    <Setter Property="BorderBrush">
                                        <Setter.Value>
                                            <SolidColorBrush Color="{Binding AlarmPriority.BackColour, Converter={StaticResource PriorityBrush}}" />
                                        </Setter.Value>
                                    </Setter>
                                     <Style.Triggers>
                                        <DataTrigger Binding="{Binding Path=OPCAlarm.OPCAlarmTriggered}" Value="True">

                                            <Setter Property="BorderThickness" Value="10"/>
                                        </DataTrigger>
                                        <DataTrigger Binding="{Binding Path=OPCAlarm.OPCAlarmTriggered}" Value="False">

                                            <Setter Property="BorderThickness" Value="1"/>
                                        </DataTrigger>
                                    </Style.Triggers> 
                                </Style>
                            </Border.Style>
<Border Name="AlarmBorder" BorderBrush="{Binding AlarmPriority.BackColour, Converter={StaticResource PriorityBrush}}">

这会增加边框的厚度,但不会应用颜色。如果我将颜色移动到边框标签内,如下所示:

<Border Name="AlarmBorder">
                            <Border.Style>
                                <Style TargetType="{x:Type Border}">
                                    <Setter Property="Background">
                                        <Setter.Value>
                                            <SolidColorBrush Color="{Binding AlarmPriority.BackColour, Converter={StaticResource PriorityBrush}}" />
                                        </Setter.Value>
                                    </Setter>
                                    <Setter Property="BorderBrush">
                                        <Setter.Value>
                                            <SolidColorBrush Color="{Binding AlarmPriority.BackColour, Converter={StaticResource PriorityBrush}}" />
                                        </Setter.Value>
                                    </Setter>
                                     <Style.Triggers>
                                        <DataTrigger Binding="{Binding Path=OPCAlarm.OPCAlarmTriggered}" Value="True">

                                            <Setter Property="BorderThickness" Value="10"/>
                                        </DataTrigger>
                                        <DataTrigger Binding="{Binding Path=OPCAlarm.OPCAlarmTriggered}" Value="False">

                                            <Setter Property="BorderThickness" Value="1"/>
                                        </DataTrigger>
                                    </Style.Triggers> 
                                </Style>
                            </Border.Style>
<Border Name="AlarmBorder" BorderBrush="{Binding AlarmPriority.BackColour, Converter={StaticResource PriorityBrush}}">

我得到了正确颜色的边框

因此,在样式级别应用的颜色不会应用(但BorderThickness属性会应用),但在元素级别,颜色会通过

有人能告诉我我做错了什么吗

谢谢你,你的行为是由你自己造成的

本地集属性比样式设置器具有更高的优先级因此,如果设置本地值,无论在样式DataTriggers中设置了什么,它都不会被应用

您需要将其移动到样式设置器,以便可以使用样式数据触发器进行切换

如果转换器仅执行从颜色到画笔的转换,则可以完全忽略该转换,并执行以下操作:

<Setter.Value>
   <SolidColorBrush Color="{Binding AlarmPriority.BackColour}"/>
</Setter.Value>

谢谢,但如果您再看一看我的示例,我只是在样式设置器级别设置背景颜色,而不是在本地级别。只有当我将属性移动到本地级别时,它才起作用,但我不希望这样-我希望它处于样式,而这是不起作用的。