列表框项目在其文本框失去焦点时被取消选择
本文关键字:选择 焦点 取消 文本 项目 列表 失去 | 更新日期: 2023-09-27 18:23:58
在我的应用程序中,我有一个ListBox
,其ListBoxItems
呈现为TextBoxes
。每当TextBox
获得键盘焦点时,我希望该项目被选中。我对它应用了以下Trigger
:
<Trigger Property="IsKeyboardFocusWithin" Value="true">
<Setter Property="IsSelected" Value="true" />
</Trigger>
然而,我不希望在TextBox
失去焦点时取消选择该项目,这就是我目前得到的。这意味着,例如,我无法通过从ComboBox
中选择TextBox
来更改其字体大小。
上述代码是在ResourceDictionary
文件中的Template
中定义的。
您可以使用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>
这样项目在失去焦点时不会自动取消选择