Heim >Backend-Entwicklung >C++ >So blenden Sie die Schaltfläche „Schließen' in einem modalen WPF-Dialog aus und behalten dabei die
Schaltfläche „Schließen“ im WPF-Fenster ausblenden
Im modalen WPF-Dialogfeld möchten wir manchmal die Schaltfläche „Schließen“ oben im Fenster ausblenden. Behalten Sie aber weiterhin die Titelleiste bei. Allerdings erfüllt keine der vorhandenen Eigenschaften ResizeMode, WindowState und WindowStyle beide Anforderungen. Hier ist eine Lösung für dieses Problem mit P/Invoke.
Fügen Sie zunächst die folgende Deklaration in der Fensterklasse hinzu:
private const int GWL_STYLE = -16; private const int WS_SYSMENU = 0x80000; [DllImport("user32.dll", SetLastError = true)] private static extern int GetWindowLong(IntPtr hWnd, int nIndex); [DllImport("user32.dll")] private static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
Fügen Sie dann den folgenden Code in das Loaded-Ereignis des Fensters ein:
var hwnd = new WindowInteropHelper(this).Handle; SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_SYSMENU);
Führen Sie das oben Gesagte aus Code Danach wird die Schaltfläche zum Schließen ausgeblendet. Beachten Sie, dass dadurch nur die Schaltfläche ausgeblendet wird. Die Tastenkombination zum Schließen des Fensters (Alt F4) funktioniert weiterhin. Wenn Sie verhindern müssen, dass der Benutzer das Fenster schließt, können Sie die von Gabe vorgeschlagene Methode verwenden, um das OnClosing-Ereignis zu überschreiben und Cancel auf true zu setzen.
Das obige ist der detaillierte Inhalt vonSo blenden Sie die Schaltfläche „Schließen' in einem modalen WPF-Dialog aus und behalten dabei die. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!