ユーザーが入力している間、私の周りに素敵な小さなオレンジ色の境界線が欲しいですTextbox
(フォーカスがあります)。
必要だと思われるトラのスタイルを定義しましたが、奇妙な動作があります。
カーソルが にTextBox
あり、WPF アプリにフォーカスがある場合、青い境界線が表示されます。
しかし、カーソルがフォーカスされ、アプリの外側 (ビジュアル スタジオのように) をクリックすると、オレンジ色になります。
多くのトリガーをオーバーライドしようとしましたが、役に立ちませんでした。
これは、テキスト ボックスに注目しているときに別のアプリに注目している場合に発生することです。
これは、アプリ内のフォーカスのあるテキスト ボックスです。
コードは次のとおりです。
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>