Как делают я удаляю, минимизируют и максимизируют из окна изменяемого размера в WPF?

76
задан Robert 2 July 2015 в 12:20
поделиться

2 ответа

Я украл некоторый код, который я нашел на форумах MSDN и сделал дополнительный метод на классе Окна, как это:

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, (currentStyle & ~WS_MAXIMIZEBOX & ~WS_MINIMIZEBOX));
    }
}

Единственная другая вещь помнить состоит в том, что по некоторым причинам это не работает от конструктора окна. Я обошел это путем зажимания этого в конструктора:

this.SourceInitialized += (x, y) =>
{
    this.HideMinimizeAndMaximizeButtons();
};

Hope это помогает!

105
ответ дан Ian Kemp 24 November 2019 в 11:08
поделиться

не знают, работает ли это на Ваш req. визуально.. Это

<Window x:Class="DataBinding.MyWindow" ...Title="MyWindow" Height="300" Width="300" 
    WindowStyle="ToolWindow" ResizeMode="CanResizeWithGrip">
21
ответ дан Community 24 November 2019 в 11:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: