WPF 应用程序交叉 (X) 按钮在单击时不起作用
本文关键字:按钮 单击 不起作用 应用程序 WPF | 更新日期: 2023-09-27 18:25:40
我有一个 WPF 应用程序,我面临的问题是我的应用程序没有在单击单个十字 (X( 按钮时关闭。也许我知道原因——
最初发生的事情是我在加载窗口时将焦点设置为菜单项,因此当我首先单击十字(X(按钮时,菜单项中的焦点被删除,然后在第二次单击应用程序十字(x(按钮时起作用。
private void Window_Loaded(object sender, RoutedEventArgs e)
{
MenuItem1.Focus();
}
但是当我不设置"菜单项焦点"时,十字按钮只需单击一下即可工作。
private void Window_Loaded(object sender, RoutedEventArgs e)
{
// MenuItem1.Focus();
}
我想将焦点设置在菜单项上,并希望红十字(X(按钮在单击时执行。
他们有什么办法可以实现这种情况..???
我同意这种行为正在发生......MenuItem
与具有专注力的Button
不同。@Samuel,FocusManager.IsFocusScope
在这里没有效果。当Menu
聚焦时,它甚至可以阻止窗口移动或重新调整大小,更不用说单击其任何Button
了。
我尝试实现其他事件,例如MouseLeave
和LostFocus
(在窗口上(,所有这些都无法更改此重点MenuItem
。
我不知道为什么Farzi希望它自动聚焦,但我建议这是一个坏主意。也许Farzi想要的东西可以用不同的方式实现?也许暂时给MenuItem.Background
上色?
您在 FocusManager 提供的逻辑作用域方面遇到问题。请参阅 http://msdn.microsoft.com/en-us/library/aa969768.aspx
以下是焦点范围的相关问题和说明:http://social.msdn.microsoft.com/Forums/vstudio/en-US/f5de6ffc-fa03-4f08-87e9-77bbad752033/a-focusscope-nightmare-bug-commands-are-disabled您可以通过在菜单上将 FocusManager.IsFocusScope 设置为 false 来解决此问题,这将如何产生一些可用性问题,因为菜单在自己的逻辑范围内工作得更好。