首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使WPF窗口的行为类似于上下文菜单(正确显示/隐藏它)

使WPF窗口的行为类似于上下文菜单(正确显示/隐藏它)
EN

Stack Overflow用户
提问于 2008-12-11 21:28:15
回答 2查看 3.7K关注 0票数 2

我想做一个WPF窗口,它的行为像一个上下文菜单。

例如,当我显示wpf窗口时,我希望它是最顶层的窗口,从那里开始,如果用户单击该窗口之外的任何内容,我希望该窗口再次隐藏。

到目前为止,我已经尝试了相当多的技术,但我发现唯一一种有点有效的技术显示在这里。它在第一次就能工作,但在那之后就再也不能工作了:

代码语言:javascript
运行
复制
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();
}

我也试着只处理停用的事件,但由于某些原因,它也只在第一次工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-12-11 21:37:54

PopUp是否不足以满足您的需求?它有一个StaysOpen属性,可以让它按照您所描述的那样工作。

票数 3
EN

Stack Overflow用户

发布于 2008-12-11 21:49:13

我不知道这会有多大帮助,但如果你不一定需要一个窗口,我使用的一种技术是在窗口中放置一个UserControl。

根据具体情况,您将显示上下文菜单。在菜单中,我放置了一个菜单项,并在其中放置了用户控件。它的行为将完全像你想要的那样。您可以在屏幕上的任何位置显示上下文菜单,在其边界之外单击将关闭该菜单。

有关如何在屏幕上的任意位置显示上下文菜单的示例,请参阅:http://andyonwpf.blogspot.com/2006/10/dropdownbuttons-in-wpf.html。此外,您还需要覆盖MenuItem的默认模板,以便将鼠标悬停在菜单项上时不会突出显示它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/361024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档