SORU
13 NİSAN 2009, PAZARTESİ


Nasıl wpf penceresinde Kapat düğmesini gizlemek için?

Wpf kalıcı bir iletişim kutusu yazıyorum. Nasıl bir kapatma düğmesi yok wpf pencere ayarlarım? Hala normal bir başlık çubuğu için kendi Yapabilirsiniz için istiyorum.

ResizeMode, Yapabilirsiniz, ve WindowStyle buldum, ama bu özelliklerin hiçbiri bana Kapat düğmesini gizlemek için izin ama başlık çubuğu, kalıcı iletişim kutusu olarak göster.

CEVAP
6 HAZİRAN 2009, CUMARTESİ


WPF bir yerleşik özelliği başlık çubuğundaki Kapat düğmesini gizlemek zorunda değil, ama/Çağırmak P birkaç satır ile yapabilirsin.

İlk olarak, Pencere sınıfı için bu bildirimleri ekleyin:

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

Sonra Pencerenin Dolu olay içinde bu kodu koymak:

var hwnd = new WindowInteropHelper(this).Handle;
SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) & ~WS_SYSMENU);

Ve işte: daha Yakın hiçbir düğme. Sen de tıkla hemen hepsi birliktedir başlık çubuğu bile yok Sistem menüsünü demek ki başlık çubuğu, sol tarafında bir pencere simge var, olmaz.

Alt F4 hala Pencereyi kapatmak unutmayın. Eğer pencere arka plan iş parçacığı yapılır önce kapatmak için izin vermek istiyorsanız Eğer doğru değilse, o zaman da OnClosing geçersiz kılar ve Gabe önerdiği gibi İptal true, ayarlayabilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dylan Brenan

    Dylan Brenan

    22 Aralık 2009
  • Lancome USA

    Lancome USA

    30 HAZİRAN 2009
  • RealPapaPit

    RealPapaPit

    16 Mart 2009