Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有Silverlight 4控件的默认键盘行为参考?_Silverlight_Documentation_Keyboard_Default_Behavior - Fatal编程技术网

是否有Silverlight 4控件的默认键盘行为参考?

是否有Silverlight 4控件的默认键盘行为参考?,silverlight,documentation,keyboard,default,behavior,Silverlight,Documentation,Keyboard,Default,Behavior,在微软的官方文档中,只有一段提到了控件在键盘上的行为(至少我能找到): 文本输入和控件 某些控件通过自己的处理对键盘事件作出反应。例如,TextBox是一个控件,设计用于捕获然后直观地表示使用键盘输入的文本,它在自己的逻辑中使用KeyUp和KeyDown来捕获击键,然后如果文本实际发生更改,还会引发自己的TextChanged事件。通常,您仍然可以将KeyUp和KeyDown的处理程序添加到文本框或任何用于处理文本输入的相关控件。但是,作为其预期设计的一部分,控件可能不会响应通过键事件指向它的

在微软的官方文档中,只有一段提到了控件在键盘上的行为(至少我能找到):

文本输入和控件

某些控件通过自己的处理对键盘事件作出反应。例如,TextBox是一个控件,设计用于捕获然后直观地表示使用键盘输入的文本,它在自己的逻辑中使用KeyUp和KeyDown来捕获击键,然后如果文本实际发生更改,还会引发自己的TextChanged事件。通常,您仍然可以将KeyUp和KeyDown的处理程序添加到文本框或任何用于处理文本输入的相关控件。但是,作为其预期设计的一部分,控件可能不会响应通过键事件指向它的所有键值。行为特定于每个控件。例如,ButtonBase(Button的基类)处理KeyUp,以便它可以检查空格键或ENTER键,它认为这相当于鼠标左键按下以引发单击事件。此事件处理是通过ButtonBase重写虚拟方法OnKeyUp来完成的,在其实现中,它将Handled=true。结果是,在空格键的情况下,任何侦听键事件的按钮的父级都不会为其自己的处理程序接收已处理的事件。另一个例子是文本框。某些键(如箭头键)不被TextBox视为文本,而是被视为特定于控件UI行为,TextBox将这些事件案例标记为已处理

自定义控件可以通过重写OnKeyDown/onkeydup来实现它们自己类似的键事件重写行为。如果自定义控件处理特定的加速键,或具有与TextBox所述场景类似的控制或焦点行为,则应将此逻辑置于自己的OnKeyDown/OnKeyUp覆盖中

有没有更完整的参考资料

例如,在自动完成框中,您可以按向上/向下键导航到建议,然后按enter键选择一个建议,等等


当然,一定有比集中每个控件并按下键盘上的每个键更好的方法:)

查找源代码\Reflector

在控制文本处理方面有很多怪癖,我怀疑是否有人会在意记录这些。例如,当控件中有文本时,用户按BackSpace时不会触发TextBox的KeyDown事件,但当控件中没有文本时会触发,等等。找到某个内容如何工作的最快方法是深入源代码


我想出了一条很好的规则:如果出于某种原因,你需要知道某个控件在某种情况下的行为,不要浪费你的时间尝试编码(复制)这种情况,只要找到Reflector并查看源代码。

这些是你要找的无人机吗

这里是官方ms捷径的链接, t它们将被添加到Windows 8的
希望这有帮助

本教程介绍了如何将键盘快捷键添加到自定义控件,但我想要的是对内置控件(甚至可能是Silverlight Toolkit控件)的参考。这几乎就是:)我想Silverlight控件或多或少都必须遵守Windows设计准则,所以这是一个好主意,但是这个参考资料似乎有更多的全局键盘快捷键和主要的按键组合:(我把这个标记为公认的答案,因为这是目前为止最可靠的方法,但我私下希望至少有一些众包参考资料…:)也许这会有帮助。。。。