我有一个带有 ListBoxItems
的 ListBox
和一个模板,因此它们包含 TextBoxes
当 TextBox
获得焦点时,我希望选择 ListBoxItem
。我发现的一种解决方案如下所示:
<Style TargetType="{x:Type ListBoxItem}">
<Style.Triggers>
<Trigger Property="IsKeyboardFocusWithin" Value="True">
<Setter Property="IsSelected" Value="True"></Setter>
</Trigger>
</Style.Triggers>
</Style>
这很好用,但是当 TextBox
失去焦点时,选择也会失去焦点。
有没有办法防止这种情况发生?
最佳答案
我发现没有代码隐藏的最佳解决方案是:
<Style TargetType="{x:Type ListBoxItem}">
<Style.Triggers>
<EventTrigger RoutedEvent="PreviewGotKeyboardFocus">
<BeginStoryboard>
<Storyboard>
<BooleanAnimationUsingKeyFrames
Storyboard.TargetProperty="(ListBoxItem.IsSelected)">
<DiscreteBooleanKeyFrame KeyTime="0" Value="True"/>
</BooleanAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
关于c# - WPF:在 TextBox 具有焦点时为 ListBox 设置 IsSelected,而不会在 LostFocus 上丢失选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15366806/