MSDN 포럼에서 찾은 일부 코드를 훔쳐서 다음과 같이 Window 클래스에 확장 메서드를 만들었습니다.
internal static class WindowExtensions
{
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();
};
도움이 되었기를 바랍니다!