SORU
4 Aralık 2008, PERŞEMBE


Nasıl en aza Kaldır ve yeniden boyutlandırılabilir penceresinde en üst düzeye çıkarmak WPF mı?

WPF yeniden boyutlandırmak sağlar ama ya düğmeleri en üst düzeye çıkarmak en aza indirmek olmayan bir pencere var yeteneği sağlamaz. Boyutlandırılabilir iletişim kutuları var ben böyle bir pencere yapmak istiyorum.

Çözüm pınvoke kullanarak anlamına gelecektir farkındayım ama ne ve nasıl olduğundan emin değilim. Arama pinvoke.net değildi herhangi bir şey atlamış beni ne kadar ihtiyacım vardı, esas eminim çünkü Windows Forms imkanı sağlıyor CanMinimize CanMaximize özelliklerini windows.

Birisi ya da bir kod sağlamak doğru beni işaret ediyor olabilir (C# tercih sebebidir) bunu nasıl yapacak?

CEVAP
4 Aralık 2008, PERŞEMBE


TechNet forumlarında buldum bazı kodlar çaldım ve böyle bir Pencere sınıfını uzantısı bir yöntem kıldık

internal static class WindowExtensions
{
    // from winuser.h
    private const int GWL_STYLE      = -16,
                      WS_MAXIMIZEBOX = 0x10000,
                      WS_MINIMIZEBOX = 0x20000;

    [DllImport("user32.dll")]
    extern private static int GetWindowLong(IntPtr hwnd, int index);

    [DllImport("user32.dll")]
    extern private static int SetWindowLong(IntPtr hwnd, int index, int value);

    internal static void HideMinimizeAndMaximizeButtons(this Window window)
    {
        IntPtr hwnd = new System.Windows.Interop.WindowInteropHelper(window).Handle;
        var currentStyle = GetWindowLong(hwnd, GWL_STYLE);

        SetWindowLong(hwnd, GWL_STYLE, (currentStyle & ~WS_MAXIMIZEBOX & ~WS_MINIMIZEBOX));
    }
}

Hatırlamamız gereken bir diğer şey ise bazı nedenlerden dolayı bu bir pencere oluşturucu çalışmıyor. Kurucu bu aynalı tarafından etrafında var:

this.SourceInitialized  = (x, y) =>
{
    this.HideMinimizeAndMaximizeButtons();
};

Bu yardımcı olur umarım!

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • andony5589

    andony5589

    7 Aralık 2011
  • How To Cook That

    How To Cook

    16 NİSAN 2011
  • TurkishRoyal

    TurkishRoyal

    16 Ocak 2007