0

私は WPF アプリケーションを持っていますが、私が直面している問題は、クロス (X) ボタンを 1 回クリックしてもアプリケーションが閉じられないことです。その理由がわかるかも――

最初に、ウィンドウがロードされたときにフォーカスを MenuItem に設定しているため、最初に Cross(X) ボタンをクリックすると、MenuItem からのフォーカスが削除され、次にアプリケーションの Cross(x) ボタンをクリックすると機能します。

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    MenuItem1.Focus();               
}

しかし、メニューアイテムにフォーカスを設定しないと、十字ボタンはシングルクリックで機能します。

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    // MenuItem1.Focus();                 
}

MenuItem にフォーカスを設定し、シングルクリックで赤十字 (X) ボタンを実行したい..

このシナリオを達成できる方法はありますか..???

4

2 に答える 2

1

この動作が発生していることに同意します... aはフォーカスを持つことMenuItemと同じではありません。Button@Samuel、FocusManager.IsFocusScopeここでは効果がありません。がフォーカスされている場合Menu、ウィンドウの移動やサイズ変更はもちろん、ウィンドウのいずれかをButtonクリックすることもできなくなります。

MouseLeaveand (ウィンドウ上)などの他のイベントをLostFocusすべて実装しようとしましたが、この focusd を変更することはできませんMenuItemでした。

なぜFarziが自動的に焦点を合わせたいのかはわかりませんが、これは悪い考えだと思います. Farzi が望んでいることは、別の方法で達成できるのではないでしょうか? 代わりに一時的に着色することはMenuItem.Backgroundできますか?

于 2013-07-31T09:20:20.473 に答える
0

FocusManager によって提供される論理スコープで問題が発生しています。http://msdn.microsoft.com/en-us/library/aa969768.aspxを参照してください。

フォーカス スコープと説明に関連する問題は次のとおりです。 -are-disabled メニューで FocusManager.IsFocusScope を false に設定することでこれを回避できますが、これにより、メニューが独自の論理スコープでより適切に機能するため、ユーザビリティの問題が発生します。

于 2013-07-31T08:41:37.497 に答える