我一直在尝试在Focus上更改我的TextBox的BorderBrush几天,并且它不想工作。
我已经编写了一些人们建议的代码,但边框似乎只在TextBox的“右键单击”而不是焦点上发生变化?
这里是我写的代码:
<TextBox Text="{Binding ServerURL, UpdateSourceTrigger=PropertyChanged}" Padding="2" BorderThickness="2" VerticalAlignment="Stretch" Grid.Row="1" FontFamily="Sans Serif" Foreground="#858585" FontSize="10px" FontWeight="Medium">
<TextBox.Resources>
<Style TargetType="{x:Type Border}">
<Setter Property="CornerRadius" Value="2"/>
</Style>
</TextBox.Resources>
<TextBox.Style>
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="IsFocused" Value="true">
<Setter Property="BorderBrush" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
就像我提到的那样,当我右键单击TextBox时它确实有效,但我需要它来处理左键单击(当TextBox聚焦时)。
有人有任何建议吗?
答案 0 :(得分:0)
TextBox控件内置了一个“聚焦”视觉状态触发器,您可以更改该触发器的值,实际上非常简单,只需按照以下步骤操作:
步骤1.在页面中添加文本框。
第2步。右键单击文本框并选择:“EditTemplate”\“编辑副本...”
这将带您进入模板设计师阶段。
第3步。查看此图片:https://postimg.org/image/ocdn34is1/
答案 1 :(得分:-1)
<Window.Resources>
<Style x:Key="ControlStyle1" TargetType="{x:Type Control}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Control}">
<Border BorderBrush="Red" BorderThickness="2"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<TextBox FocusVisualStyle="{DynamicResource ControlStyle1}" Text="{Binding ServerURL, UpdateSourceTrigger=PropertyChanged}" Padding="2" BorderThickness="2" VerticalAlignment="Stretch" Grid.Row="1" FontFamily="Sans Serif" Foreground="#858585" FontSize="10px" FontWeight="Medium"/>