【发布时间】:2016-04-13 17:21:41
【问题描述】:
我想在我的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>
【问题讨论】:
标签: wpf xaml triggers wpf-style