首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ContextMenu打开时触发MouseLeave

问ContextMenu打开时触发MouseLeave
EN

Stack Overflow用户
提问于 2017-03-02 16:44:50
回答 1查看 399关注 0票数 1

我的应用程序有一个AlwaysOnTop行为,我想让它在鼠标离开时失去焦点。有一些带有上下文菜单的按钮。问题是,一旦ContextMenu打开MouseLeave事件就会自动触发,即使鼠标仍然在我的窗口的子级上,它也会立即关闭,因为我将焦点设置到了其他外部应用程序上

代码语言:javascript
复制
private void This_MouseLeave(object sender, MouseEventArgs e)
{
    if (!this.IsMouseOver)
    {
        OtherExternalWindow.Focus();
    }
}

我尝试在鼠标未结束时添加检查,但似乎上下文菜单不被视为我的窗口(?)的子级。我认为这可以通过命名我所有的ContextMenus并检查它们中是否有任何是开放的来实现的,但我希望避免这种方法,除非用其他方法是不可能的。

如何在鼠标离开时切换焦点而不中断上下文菜单行为?

EN

回答 1

Stack Overflow用户

发布于 2017-03-02 17:13:39

如果你不想让ContextMenu获得焦点,可以设置它的(和它的内部元素,比如MenuItems) Focusable="false"。

代码语言:javascript
复制
<Button Content="BBBB">
    <Button.ContextMenu>
        <ContextMenu Focusable="False">
            <MenuItem Header="AAAA" Focusable="False"/>
        </ContextMenu>
    </Button.ContextMenu>
</Button>
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42550578

复制
相关文章

相似问题

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