【发布时间】:2009-10-18 19:24:24
【问题描述】:
我正在使用 WPF 创建一个选项对话框,其中列出了可能的键,以便用户可以分配程序的热键。我正在尝试将 System.Windows.Forms.Keys 枚举的所有可能值过滤到仅 A-Z 和 F1-F12,然后将该列表绑定到 ComboBox。
到目前为止,这是我的代码:
Regex filter = new Regex("(^[A-Z]$)|(^F[0-9]{1,2}$)");
IEnumerable<Key> keyList = from x in (IEnumerable<Key>)Enum.GetValues(typeof(Keys))
where filter.Match(x.ToString()).Success
select x;
keys.DataContext = keyList;
执行此操作后,keyList 包含字母“A”两次,并且缺少字母“P”到“U”。我不知道为什么。
如果有更好的方法,我也对替代方法感兴趣。
【问题讨论】:
标签: c# wpf linq keyboard-shortcuts