Csharp/C#教程:防止XAML / C#中的ListView的返回(回车),向上和向下箭头键的默认行为(Windows 10)分享


防止XAML / C#中的ListView的返回(回车),向上和向下箭头键的默认行为(Windows 10)

当列表视图具有焦点时,按下回车键的默认行为是选择列表视图的第一个元素,向上和向下箭头键滚动列表视图。 我试图阻止这种默认行为并挂钩我的自定义逻辑。

我可以使用KeyDown为列表视图实现Access键,如下所示:

代码背后的方法:

CoreWindow.GetForCurrentThread().KeyDown += KeyDownHandler; 

MVVM方法:

  

触发Keydown属性:

    

并使用行为将列表视图的滚动条滚动到所选索引:

  

当列表视图没有焦点时,上面的处理程序会被触发。 当listview具有焦点时,箭头up,down和Enter键的默认行为将被触发,而不是我的附加行为。 有没有办法防止默认行为?

考虑扩展ListView控件并覆盖OnKeyDown处理程序。

 public class ExtendedListView : ListView { protected override void OnKeyDown(KeyRoutedEventArgs e) { if (e.Key == VirtualKey.Enter || e.Key == VirtualKey.Up || e.Key == VirtualKey.Down) { return; } base.OnKeyDown(e); } } 

试试这个

 CoreWindow.GetForCurrentThread().KeyDown += new KeyEventHandler(ListView_KeyDown); private void ListView_KeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Enter) //do ur stuff } 

使用PreviewKeyDown事件而不是KeyDown是一种更好的方法

Enter键是一个所谓的VirtualKey (单击链接以查看MSDN文档)。 这应该完成:

  private void UIElement_OnKeyDown(object sender, KeyRoutedEventArgs e) { if (e.Key == VirtualKey.Enter) { } } 

希望这可以帮助。

上述就是C#学习教程:防止XAML / C#中的ListView的返回(回车),向上和向下箭头键的默认行为(Windows 10)分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/943323.html

(0)
上一篇 2021年11月14日
下一篇 2021年11月14日

精彩推荐