【发布时间】:2008-12-11 21:28:15
【问题描述】:
我想制作一个行为类似于上下文菜单的 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();
}
我也尝试只处理 Deactivated 事件,但由于某种原因它也只能在第一次工作。
【问题讨论】: