Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.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
C# 如何取消文本框上的键盘焦点_C#_Wpf_Textbox - Fatal编程技术网

C# 如何取消文本框上的键盘焦点

C# 如何取消文本框上的键盘焦点,c#,wpf,textbox,C#,Wpf,Textbox,当text为空且IsKeyboardFocusWithin为false时,我使用的是在其内部显示提示文本 问题是,当我启动新窗口时,它会自动将键盘焦点放在第一个文本框上,因此不会显示提示文本(但这种行为是可以接受的)。 如果我想取消键盘焦点,我必须单击其他控件(例如,单击一个按钮,单击另一个文本框),我不能单击空白来取消键盘焦点 我还测试了普通的文本框,它的行为是一样的。所以问题是: 当我通过单击空格将键盘焦点放在文本框上时,如何取消键盘焦点?在鼠标向下事件处理程序中的“空格”,将焦点放在其他控

text
为空且
IsKeyboardFocusWithin
为false时,我使用的是在其内部显示提示文本

问题是,当我启动新窗口时,它会自动将键盘焦点放在第一个文本框上,因此不会显示提示文本(但这种行为是可以接受的)。
如果我想取消键盘焦点,我必须单击其他控件(例如,单击一个按钮,单击另一个文本框),我不能单击空白来取消键盘焦点

我还测试了普通的文本框,它的行为是一样的。所以问题是:

当我通过单击空格将键盘焦点放在文本框上时,如何取消键盘焦点?

鼠标向下
事件处理程序中的
“空格”
,将焦点放在其他控件上(如果有的话)。或者,您需要一个不可见/看不见的边界文本框来关注:

<blankSpaceControl>.MouseDown += ClearFocus;

void ClearFocus(object sender, MouseEventArgs me)
{
    <yourOtherFocusableControl>.Focus();
}
.MouseDown+=ClearFocus;
无效ClearFocus(对象发送器,MouseEventArgs me)
{
.Focus();
}

没有别的办法。对焦窗口本身会将焦点传递到第一个可对焦的子控件。

只需使用键盘。ClearFocus()


所以,我需要将事件添加到每个控件中,用户可以单击它来清除文本框上的焦点?我已经检查了应用程序,但我不知道它是如何实现这种行为的。所以,我需要向每个控件添加事件,用户可以单击它来清除文本框上的焦点?我已经检查了应用程序,但我不知道它是如何实现这种行为的。