WPF TextBox Border when selected?

后端 未结 4 781
生来不讨喜
生来不讨喜 2021-02-06 03:35

I want to make a WPF TextBox have a DarkBlue border and thickness equal to 1. I want to make the WPF have this border ( DarkBlue, thickness set to 1 ) even when the TextBox is s

相关标签:
4条回答
  • 2021-02-06 03:48

    You have the same logic for when "IsMouseOver" True as well False. Change one and you should see something.

    0 讨论(0)
  • 2021-02-06 03:53

    I think your problem is due to having the Trigger Property value containing TextBox. You just need the name of the property.

        <Style x:Key="ReadOnlyLargeTextBox" TargetType="{x:Type TextBox}">
            <Setter Property="Height" Value="80"/>
            <Setter Property="MaxHeight" Value="80"/>
    
            <Setter Property="VerticalScrollBarVisibility" Value="Visible"/>
    
            <Style.Triggers>
                <Trigger Property="IsFocused"  Value="True">
                    <Setter Property="BorderBrush" Value="Blue"/>
                    <Setter Property="BorderThickness" Value="1"/>
                </Trigger>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="BorderBrush" Value="Blue"/>
                    <Setter Property="BorderThickness" Value="1"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    
    0 讨论(0)
  • 2021-02-06 04:00

    Check FocusVisualStyle property of the FrameworkElement object (ancestor of TextBox). It's purpose is to define style applied when an element is selected.

    0 讨论(0)
  • 2021-02-06 04:04

    just see is this you want...

    <Style x:Key="TextBoxStyle1" BasedOn="{x:Null}" TargetType="{x:Type TextBox}">
            <Setter Property="BorderThickness" Value="1"/>
            <Setter Property="Padding" Value="1"/>
            <Setter Property="AllowDrop" Value="true"/>
            <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type TextBox}">
                    <Border x:Name="bg" BorderBrush="#FF825E5E" BorderThickness="1">
                            <ScrollViewer x:Name="PART_ContentHost" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
                            </Border>
                        <ControlTemplate.Triggers>
    
                            <Trigger Property="IsMouseOver" Value="True">
                                <Setter Property="BorderBrush" TargetName="bg" Value="DarkBlue"/>
                                <Setter Property="BorderThickness" TargetName="bg" Value="2"/>
                            </Trigger>
                            <Trigger Property="IsFocused" Value="True">
                                <Setter Property="BorderBrush" TargetName="bg" Value="DarkBlue"/>
                                <Setter Property="BorderThickness" TargetName="bg" Value="2"/>
                            </Trigger>
    
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style> 
    
    0 讨论(0)
提交回复
热议问题