默认情况下,我需要关注另一个组件(按钮或文本框)以从当前组件中取消聚焦。 我想点击外面。 因此,例如,如果我单击一个textBox并写一些东西,而不是在TextBox外部单击,我就无法键入,因为该组件没有聚焦。
(我希望我的解释很清楚,如果没有,请在评论中说明)
答案 0 :(得分:0)
您可以通过附加PreviewMouseDown
Window
事件来实现此功能。另外,为了丢失焦点,您需要另一个可聚焦控件(例如名为_dummyControl
的文本框)来将焦点移动到。
public MainWindow()
{
this.PreviewMouseDown += PreviewMouseDownEventHandler;
}
private void PreviewMouseDownEventHandler(object sender, MouseButtonEventArgs e)
{
//check conditions here...
_dummyControl.Focus();
}
更多信息:
PreviewMouseDown
事件发生在MouseDown
或点击事件发生之前。通过附加到此事件,您的代码可以告诉用户何时单击窗口,此时您应该将焦点移动到隐藏控件以模拟非聚焦功能。