0

我目前有

<Style x:Key="ListboxItemStyle" TargetType="{x:Type ListBoxItem}">
    <Style.Triggers>
        <Trigger Property="IsKeyboardFocusWithin" Value="True">
            <Setter Property="IsSelected" Value="True" />
        </Trigger>
    </Style.Triggers>
</Style>

-1但是问题是当我对 UI 焦点进行其他控制时,SelectedIndex 会返回。我正在寻找的行为ListBoxItem是当孩子获得焦点时选择,但当孩子失去焦点时不会重置。

4

1 回答 1

1

TriggerEventTriggerthen替换IsSelected不会恢复到原始状态:

<EventTrigger RoutedEvent="PreviewGotKeyboardFocus">
    <BeginStoryboard>
        <Storyboard>
            <BooleanAnimationUsingKeyFrames Storyboard.TargetProperty="IsSelected">
                <DiscreteBooleanKeyFrame Value="True" KeyTime="0:0:0" />
            </BooleanAnimationUsingKeyFrames>
        </Storyboard>
    </BeginStoryboard>                          
</EventTrigger>

来自MSDN

与 Trigger 不同,EventTrigger 没有状态终止的概念,因此一旦引发事件的条件不再为真,该操作将不会被撤消。

PS:我只试过这个SelectionMode="Single"

于 2013-07-15T09:13:49.297 回答