Ausblenden der Schaltfläche „Schließen“ in WPF-Fenstern
In WPF-Anwendungen erfordert das Erstellen modaler Dialoge häufig das Ausblenden der Schaltfläche „Schließen“ unter Beibehaltung der Titelleiste. Während in WPF keine integrierten Eigenschaften für diesen speziellen Zweck vorhanden sind, ist es möglich, die Schaltfläche „Schließen“ mithilfe einer Kombination aus P/Invoke und Ereignisbehandlung zu verbergen.
Um die Schaltfläche „Schließen“ zu unterdrücken, fügen Sie zunächst die erforderlichen Deklarationen 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ühren Sie als Nächstes im Loaded-Ereignis des Fensters den folgenden Code aus:
var hwnd = new WindowInteropHelper(this).Handle; SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_SYSMENU);
Dadurch wird die Schaltfläche zum Schließen ausgeblendet mit dem Fenstersymbol und dem Systemmenü.
Wichtige Überlegungen
Beachten Sie, dass diese Methode zwar die Schaltfläche zum Schließen verbirgt, Benutzer jedoch nicht daran hindert, das Fenster auf andere Weise zu schließen B. Alt F4 drücken oder die Anwendung über die Taskleiste schließen.
Um das Schließen des Fensters vollständig zu verhindern, bevor eine bestimmte Bedingung erfüllt ist, wird empfohlen, das OnClosing-Ereignis zu überschreiben und setzen Sie „Cancel“ auf „true“. Dies kann in Verbindung mit der P/Invoke-Technik erfolgen, um eine vollständige Lösung zum Deaktivieren des Fensterschließens bereitzustellen.
Das obige ist der detaillierte Inhalt vonWie kann ich die Schaltfläche „Schließen' in einem WPF-Fenster ausblenden und gleichzeitig die beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!