隐藏WPF窗口上的最小化最大化按钮
Posted
技术标签:
【中文标题】隐藏WPF窗口上的最小化最大化按钮【英文标题】:Hiding Minimize Maximize button on WPF Window 【发布时间】:2021-08-26 06:00:36 【问题描述】:我想隐藏/禁用 WPF 窗口上的最小化和最大化按钮。
我尝试过使用 WinAPI
我在代码库中添加了以下类
internal static class WindowExtensions
// from winuser.h
private const int GWL_STYLE = -16,
WS_MAXIMIZEBOX = 0x10000,
WS_MINIMIZEBOX = 0x20000;
[DllImport("user32.dll")]
extern private static int GetWindowLong(IntPtr hwnd, int index);
[DllImport("user32.dll")]
extern private static int SetWindowLong(IntPtr hwnd, int index, int value);
internal static void HideMinimizeAndMaximizeButtons(this Window window)
IntPtr hwnd = new System.Windows.Interop.WindowInteropHelper(window).Handle;
var currentStyle = GetWindowLong(hwnd, GWL_STYLE);
SetWindowLong(hwnd, GWL_STYLE, (int)(currentStyle & -65537 & -131073));
然后我尝试在该窗口的 SourceInitialised 方法上调用 HideMinimizeAndMaximizeButtons 方法。
这是我在网上找到的唯一解决方案。
任何人都可以建议任何其他解决方法吗?
【问题讨论】:
【参考方案1】:一种可能的解决方法是隐藏整个标题栏
<Window
WindowStyle="None"
如果需要,可以使用自定义按钮创建“程序关闭按钮”
【讨论】:
这不是必需的。将 WindowStyle 设置为 ToolWindow 或将 ResizeMode 设置为 NoResize 将实现此目的,而无需自定义关闭按钮。 @KostasK。没错,ResizeMode 为“NoResize”更好以上是关于隐藏WPF窗口上的最小化最大化按钮的主要内容,如果未能解决你的问题,请参考以下文章
Unity实战篇 |Unity 打包exe 实现隐藏窗口标题栏隐藏最小化最大化关闭按钮
Unity实战篇 |Unity 打包exe 实现隐藏窗口标题栏隐藏最小化最大化关闭按钮