我正在WPF中编写一个模态对话框。如何设置WPF窗口没有关闭按钮?我仍希望它的WindowState
具有正常的标题栏。
我找到了ResizeMode
,WindowState
和WindowStyle
,但这些属性都不能隐藏关闭按钮,同时显示标题栏,就像模态对话框一样。
我正在WPF中编写一个模态对话框。如何设置WPF窗口没有关闭按钮?我仍希望它的WindowState
具有正常的标题栏。
我找到了ResizeMode
,WindowState
和WindowStyle
,但这些属性都不能隐藏关闭按钮,同时显示标题栏,就像模态对话框一样。
IsCloseButtonEnabled="False"
它会阻止按钮。跳转到窗口属性设置
window style = none;
你不会得到关闭按钮...
WindowStyle = "None"
- 注意语法。另外,这是一种散弹式的方法,也会移除标题栏,使窗口变得丑陋且没有标题,而有很多更好的处理方法(正如其他答案所证明的那样),并且是一个重复的答案。 - vapcguy在寻找答案很久后,我想出了这个简单的解决方案,并希望在这里分享,以帮助其他人。
我设置了WindowStyle=0x10000000
。
这将为窗口样式设置WS_VISIBLE (0x10000000)
和WS_OVERLAPPED (0x0)
值。 "Overlapped"是显示标题栏和窗口边框所必需的值。 通过从我的样式值中移除WS_MINIMIZEBOX (0x20000)
、WS_MAXIMIZEBOX (0x10000)
和WS_SYSMENU (0x80000)
值,所有标题栏按钮均被删除,包括关闭按钮。
WindowStyle
是一个枚举类型,其值与Windows API常量不匹配;强制转换为WindowStyle
枚举类型将不起作用。为了确保,我已经在ILSpy中检查了.NET源代码;枚举值在私有函数CreateWindowStyle
中被翻译为Windows API,如果该函数遇到未知的WindowStyle
值,则简单地应用WindowStyle.None
。(唯一的方法是使用反射使用内部属性_Style
和_StyleEx
,我强烈建议不要这样做。) - Mike RosoftWindowStyle="SingleBorderWindow"
,这将隐藏WPF窗口的最大化和最小化按钮。