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
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!
Nasıl button in yeniden boyutlandırıla...
Nasıl editör bölmede en üst düzeye çık...
Nasıl SADECE yatay veya dikey olarak y...
Nasıl bir kavrama vasıtası ile yeniden...
Nasıl başlangıçta Windows Emacs en üst...