Textbox
当用户输入它时,我想要一个漂亮的橙色小边框(有焦点)。
我为我认为需要的跳跳虎定义了样式,但是有一个奇怪的行为。
当光标位于TextBox
WPF 应用程序具有焦点时,它有一个蓝色边框。
但是,当光标聚焦并且我在应用程序外部(如在 Visual Studio 中)单击时,它变为橙色。
我尝试过覆盖许多触发器,但无济于事。
当我专注于文本框但专注于另一个应用程序时,会发生这种情况:
这是应用程序中带焦点的文本框:
这是代码:
CTRL Xaml:
<TextBox Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2"
Style="{StaticResource RegistrationTextbox}"
IsReadOnly="{Binding Path=IsFirstNameReadOnly}" Text="{Binding FirstName}" BorderThickness="0.99">
<b:Interaction.Triggers>
<b:EventTrigger EventName="GotFocus">
<b:InvokeCommandAction Command="{Binding GotFocusFirstNameCommand}" />
</b:EventTrigger>
</b:Interaction.Triggers>
</TextBox>
款式:
<Style x:Key="RegistrationTextbox" TargetType="{x:Type TextBox}">
<Setter Property="FocusVisualStyle" Value="{x:Null}"/>
<Style.Triggers>
<Trigger Property="IsReadOnly" Value="true">
<Setter Property="Background" Value="#f2f2f2"/>
<Setter Property="BorderBrush" Value="#f2f2f2"/>
<Setter Property="BorderThickness" Value="2"/>
</Trigger>
<Trigger Property="IsKeyboardFocused" Value="true">
<Setter Property="BorderBrush" Value="Red"/>
<Setter Property="BorderThickness" Value="2"/>
</Trigger>
<Trigger Property="IsFocused" Value="True">
<Setter Property="BorderBrush" Value="#FAA634"/>
<Setter Property="BorderThickness" Value="2"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderBrush" Value="#F8B963"/>
<Setter Property="BorderThickness" Value="2"/>
</Trigger>
</Style.Triggers>
</Style>