如何在WPF中移除系统菜单?

17
根据这个MSDN页面,如果我使用Window,那么我可以将左上角的控制框设置为false来禁用它。像这样:this.ControlBox = false; 控制框有最大化、最小化、还原和关闭选项
我想在我的应用程序中禁用这个框 但是,由于我使用的是RibbonWindow而不是Window,那么在这种情况下,我该如何禁用控制框? 这个问题与此密切相关,但我想始终禁用系统菜单,而不仅仅是防止Alt+Space。这是因为(我认为)左上角的系统菜单的操作监听器会阻止我的XAML中可点击的UI元素。
我应该注意到,在Windows Server 2003中没有这个问题,但是当应用程序在Windows 7中打开时,系统菜单/控制框会干扰左上角的UI元素。
此外,我发现干扰系统菜单通常会导致应用程序右上角的按钮被停用,但我不希望发生这种情况。 感谢Eammonn提供的链接。我认为那个人试图做的是禁用右上角的[X]按钮,而不是左上角的菜单,但我可能错了。我认为它不起作用的原因是他们使用的是<Window x:Class=而我使用的是<dc:RibbonWindow x:Class=。这有区别吗?

1
RibbonWindow是从哪里来的(我知道至少有两个不同的库提供了这个,只是想知道你使用的是哪一个)。 - CodingGorilla
Microsoft.Windows.Control.Ribbon.RibbonWindow - Jeffrey Greenham
1
Eamonn的答案同样适用于RibbonWindow,因为它只是Window的扩展。 Office 2010重新引入了控制框(带有图标)。Office 2007已将其隐藏,以取代宝石。这是否会干扰轨迹球或快速访问工具栏? - CodeNaked
是的,我相信如此。问题在于,当用户在特定位置点击圆盘时,快速访问工具栏会出现。 - Jeffrey Greenham
2个回答

15

1
谢谢!你知道 WPF 窗口是什么类型的对象吗? - Jeffrey Greenham
具体来说,这是一个WPF控件,它“包装”了一个本地窗口(即HWND)。 - CodeNaked

4

您设置了 Windows 的

<Window ...
    WindowStyle="ToolWindow"
    ResizeMode="NoResize">

祝你好运。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接