繁体   English   中英

WPF触发器文本框BorderBrush不起作用

[英]WPF Trigger TextBox BorderBrush not working

当我尝试使用以下(简化的)样式为TextBox设置不同的BorderBrush时,它不起作用。

<Style x:Key="{x:Type TextBox}" TargetType="{x:Type TextBox}">        
    <Style.Triggers>            
        <Trigger Property="IsFocused" Value="True">
            <Setter Property="BorderBrush" Value="Red" />
        </Trigger>
    </Style.Triggers>
</Style>

但是,如果不是设置其他的BorderBrush而是尝试设置Background (即<Setter Property="Background" Value="Red" /> ),则它确实可以工作。

我尝试了一些解决方案,说我应该按照此处此处所述,将BorderThickness设置为0.991.01 ,但是它们对我不起作用。

任何帮助都将不胜感激。

这是因为TextBoxBase有一些IsFocused触发器,因此默认触发器将覆盖您的触发器。

您应该修改TextBoxBase模板,并将触发器放置在那里以实现所需的功能:

<TextBox.Style>
    <Style
        TargetType="{x:Type TextBox}">
        <Setter
            Property="Template">
            <Setter.Value>
                <ControlTemplate
                    TargetType="{x:Type TextBoxBase}">
                    <Border
                        x:Name="border"
                        BorderBrush="{TemplateBinding BorderBrush}"
                        BorderThickness="{TemplateBinding BorderThickness}"
                        Background="{TemplateBinding Background}"
                        SnapsToDevicePixels="True">
                        <ScrollViewer
                            x:Name="PART_ContentHost"
                            Focusable="False"
                            HorizontalScrollBarVisibility="Hidden"
                            VerticalScrollBarVisibility="Hidden" />
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger
                            Property="IsFocused"
                            Value="True">
                            <Setter
                                Property="BorderBrush"
                                Value="Red" />
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>

    </Style>
</TextBox.Style>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM