在我的应用程序中,我有一个ListBox
,其ListBoxItems
呈现为TextBoxes
。我想在TextBox
获得键盘焦点时选择项目。我已向其应用了以下Trigger
:
<Trigger Property="IsKeyboardFocusWithin" Value="true">
<Setter Property="IsSelected" Value="true" />
</Trigger>
然而,我不想要的是当TextBox
失去焦点时取消选择的项目,这就是我目前得到的。这意味着我无法通过从TextBox
中选择ComboBox
来更改Template
中的字体大小。
以上代码在ResourceDictionary
文件的{{1}}中定义。
答案 0 :(得分:3)
您可以使用Storyboard
在焦点获得时选择项目,因此仅适用于选择
<ListBox ...>
<ListBox.ItemTemplate>
<!-- your DataTemplate -->
</ListBox.ItemTemplate>
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Style.Triggers>
<EventTrigger RoutedEvent="GotKeyboardFocus">
<BeginStoryboard>
<Storyboard>
<BooleanAnimationUsingKeyFrames Storyboard.TargetProperty="IsSelected">
<DiscreteBooleanKeyFrame Value="True" KeyTime="0:0:0"/>
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
这样,当项目失去焦点时,项目将不会被自动取消选择