我有一个从System.Windows.Controls.Primitives.ToggleButton继承的MyToggleButton用户控件。
如果键盘焦点在另一个控件上,并且我用鼠标左键单击MyToggleButton,则键盘焦点将转移到MyToggleButton控件。
如果鼠标左键单击MyToggleButton,是否有方法可以防止键盘焦点转移?
注意:用户必须仍然能够Tab到MyToggleButton控件,这将设置键盘焦点。我只是不希望用户能够通过鼠标左键单击来设置键盘焦点。
同样,控件需要通过鼠标左键单击。我不希望控件在单击后具有键盘焦点。
2条答案
按热度按时间62o28rlo1#
将
ToggleButton
的Focusable属性设置为false。e4yzc0pl2#
通过将
HitTestVisible
设置为false或使用PreviewMouseLeftButtonDown
事件并将其标记为已处理,可以使控件对鼠标输入不敏感。这两种方式都有副作用,即对照组的小鼠相互作用部分或完全受到抑制。使用事件处理程序,您仍然可以进行右键单击。键盘导航和输入,但不受影响,仍然功能。下面是一个例子,它是如何与文本框。你可以用TAB键浏览所有4个文本框,但是你不能用鼠标左键选择第二个和第三个,但是第三个对鼠标右键点击有React。聚焦的文本框总是显示在浅红色背景中,用于演示目的。
这就是eventhandler(存根):