最新バージョンの WPF Toolkit を使用しています。AutoCompleteBox のスタイルを設定しようとしていますが、「IsFocused」トリガーが機能していないようです。基本的に、TextBox スタイルのように動作させたいので、AutoCompleteBox 用に作成しました。TextBox スタイルを AutoCompleteBox の TextBoxStyle プロパティに割り当てようとしても、IsFocused トリガーが起動することはありません。
コード ビハインドをいじってみたところ、OnGotFocus と OnLostFocus をオーバーライドすると、それらが呼び出されないことに気付きました。しかし、いくつかのイベント ハンドラーを GotFocus および LostFocus イベントに接続すると、最終的に何かが起こることがわかります。イベントへの配線が IsFocused の変更を確認する唯一の方法である場合、それは醜いハックのように思えます。これを回避する方法はありますか、それとも別の方法がありますか?
私の TexBox スタイル
<Style TargetType="TextBox" x:Key="TextBoxStyle">
<Setter Property="Background" Value="{StaticResource TextBoxBackground}"/>
<Setter Property="Foreground" Value="{StaticResource Foreground}"/>
<Setter Property="CaretBrush" Value="{StaticResource Foreground}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBox}">
<Grid Background="{TemplateBinding Background}" SnapsToDevicePixels="true">
<ScrollViewer x:Name="PART_ContentHost" Margin="1"/>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Background" Value="{StaticResource TextBoxBackgroundSelected}"/>
</Trigger>
<Trigger Property="IsFocused" Value="true">
<Setter Property="Background" Value="{StaticResource TextBoxBackgroundSelected}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
私の AutoCompleteBox スタイル
<Style TargetType="WpfToolkitInput:AutoCompleteBox" x:Key="AutoCompleteBoxStyle">
<Setter Property="Background" Value="{StaticResource TextBoxBackground}"/>
<Setter Property="Foreground" Value="{StaticResource Foreground}"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="TextBoxStyle" Value="{StaticResource TextBoxStyle}"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Background" Value="{StaticResource TextBoxBackgroundSelected}"/>
</Trigger>
<Trigger Property="IsFocused" Value="true">
<Setter Property="Background" Value="{StaticResource TextBoxBackgroundSelected}"/>
</Trigger>
</Style.Triggers>
何か案は?
お時間をいただきありがとうございます!