【问题标题】:Hiding Minimize Maximize button on WPF Window隐藏WPF窗口上的最小化最大化按钮
【发布时间】: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 方法。

这是我在网上找到的唯一解决方案。

任何人都可以建议任何其他解决方法吗?

【问题讨论】:

    标签: c# wpf wpf-controls


    【解决方案1】:

    一种可能的解决方法是隐藏整个标题栏

    <Window 
        WindowStyle="None"
    

    如果需要,可以使用自定义按钮创建“程序关闭按钮”

    【讨论】:

    • 这不是必需的。将 WindowStyle 设置为 ToolWindow 或将 ResizeMode 设置为 NoResize 将实现此目的,而无需自定义关闭按钮。
    • @KostasK。没错,ResizeMode 为“NoResize”更好
    猜你喜欢
    • 2011-09-25
    • 1970-01-01
    • 1970-01-01
    • 2014-03-30
    • 2011-03-13
    • 2012-02-29
    • 2012-02-24
    • 2017-01-07
    • 1970-01-01
    相关资源
    最近更新 更多