Heim >Backend-Entwicklung >C++ >So blenden Sie die Schaltfläche „Schließen' in einem modalen WPF-Dialog aus und behalten dabei die

So blenden Sie die Schaltfläche „Schließen' in einem modalen WPF-Dialog aus und behalten dabei die

Susan Sarandon
Susan SarandonOriginal
2024-12-30 15:35:15608Durchsuche

How to Hide the Close Button in a WPF Modal Dialog While Retaining the

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn