Sembunyikan butang tutup dalam tetingkap Wpf
Dalam dialog mod WPF, kadangkala kami mahu menyembunyikan butang tutup di bahagian atas tetingkap, tetapi masih Kekalkan bar tajuk. Walau bagaimanapun, tiada satu pun sifat ResizeMode, WindowState dan WindowStyle yang sedia ada memenuhi kedua-dua keperluan. Berikut ialah penyelesaian kepada masalah ini menggunakan P/Invoke.
Mula-mula, tambahkan pengisytiharan berikut dalam kelas tetingkap:
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);
Kemudian, letakkan kod berikut dalam acara Dimuatkan tetingkap:
var hwnd = new WindowInteropHelper(this).Handle; SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_SYSMENU);
Laksanakan di atas kod Selepas itu, butang tutup akan disembunyikan. Ambil perhatian bahawa ini hanya menyembunyikan butang, kekunci pintasan untuk menutup tetingkap (Alt F4) masih berfungsi. Jika anda perlu menghalang pengguna daripada menutup tetingkap, anda boleh menggunakan kaedah yang dicadangkan oleh Gabe untuk mengatasi acara OnClosing dan menetapkan Batal kepada benar.
Atas ialah kandungan terperinci Cara Menyembunyikan Butang Tutup dalam Dialog Modal WPF Semasa Mengekalkan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!