Rumah >pembangunan bahagian belakang >C++ >Bagaimana Saya Boleh Menyembunyikan Butang Tutup dalam Tetingkap WPF Semasa Menyimpan

Bagaimana Saya Boleh Menyembunyikan Butang Tutup dalam Tetingkap WPF Semasa Menyimpan

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-01 12:06:11559semak imbas

How Can I Hide the Close Button in a WPF Window While Keeping the

Menyembunyikan Butang Tutup dalam Windows WPF

Soalan: Bagaimanakah saya boleh menyembunyikan butang tutup daripada tetingkap WPF sambil mengekalkan bar tajuk biasa?

WPF tidak mempunyai pilihan terbina dalam untuk mengalih keluar butang tutup daripada bar tajuk tetingkap. Walau bagaimanapun, ini boleh dicapai menggunakan P/Invoke:

Kod:

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);

// In the Window's Loaded event
var hwnd = new WindowInteropHelper(this).Handle;
SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_SYSMENU);

Kod ini menyembunyikan butang tutup, bersama-sama dengan ikon tetingkap dan menu sistem.

Nota: Pendekatan ini hanya menyembunyikan butang. Tetingkap masih boleh ditutup menggunakan pintasan papan kekunci atau dengan menutup aplikasi.

Untuk mengelakkan tetingkap daripada ditutup apabila utas latar belakang sedang berjalan, ganti kaedah OnClosing dan tetapkan Batal kepada benar:

protected override void OnClosing(CancelEventArgs e)
{
    e.Cancel = true;
}

Atas ialah kandungan terperinci Bagaimana Saya Boleh Menyembunyikan Butang Tutup dalam Tetingkap WPF Semasa Menyimpan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn