Я хочу создать окно WPF, которое ведет себя как контекстное меню.
Так, например, когда я показываю окно wpf, я хочу, чтобы оно было самым верхним окном, а затем, если пользователь щелкает что-нибудь за пределами этого окна, я хочу, чтобы окно снова было скрыто.
До сих пор я пробовал довольно много техник, но единственная, что я обнаружил, что это работает, показана здесь. Это работает в первый раз, но больше никогда после этого:
public TheWindow()
{
InitializeComponent();
this.Topmost = true;
}
void ShowMe()
{
this.Show();
this.CaptureMouse();
}
void Window_MouseDown(object sender, MouseButtonEventArgs e)
{
/// TODO: Check if they clicked outside the window here!
this.ReleaseMouseCapture();
this.Hide();
}
Я также пытался обработать событие «Деактивировано», но по какой-то причине оно работает только в первый раз.