WPF:使用键盘

时间:2017-03-27 15:39:55

标签: wpf listview accessibility keyboard-navigation

我有一个WPF桌面应用程序,其中包含一些包含一些项目的ListView。

我希望在用鼠标点击某个项目时,或者使用键盘选择该项目并且用户点击"输入"时会收到通知。 所需的行为类似于"设置"在现代Windows 10 UI上,或右侧项目

SelectionChanged对我不起作用,因为当用户使用键盘导航时,我只想在他们点击"输入"。

时执行操作。

有没有标准的方法呢?我可以捕捉键/鼠标事件,但它似乎是一个可疑的解决方案。

1 个答案:

答案 0 :(得分:1)

  

有没有标准的方法呢?

没有。你所描述的不是标准行为。

由于您按下键盘上的向上和向下键(而不是按ListView)时实际选择了ENTER中的项目,因此除了处理键和键之外别无选择。鼠标事件我很害怕。

但这应该是一件非常容易实现的事情。例如,您可以处理PreviewKeyDown的{​​{1}}事件和ListViewItem容器的ListView事件。

请参阅以下示例代码。

PreviewMouseLeftButtonDown
<ListView x:Name="lv" PreviewKeyDown="lv_PreviewKeyDown">
    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <EventSetter Event="PreviewMouseLeftButtonDown" Handler="lv_PreviewMouseLeftButtonDown" />
        </Style>
    </ListView.ItemContainerStyle>
</ListView>

实现一些自定义行为并不“愚蠢”:)