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

  • Malwarebytes

    Malwarebytes

    22 Temmuz 2007
  • ODN

    ODN

    26 Kasım 2006
  • YEAH1TV

    YEAH1TV

    19 ŞUBAT 2009