我有一個自定義標題欄,窗口樣式設置爲無。在標題欄的點擊上,我檢查它是否是雙擊(如果沒有雙擊,那麼窗口最大化和還原),我做Window.DragMove
。這對於捕捉側面和頂部非常有用。但是,當我試圖拖動窗口時,它最大化(這通常會恢復窗口),它什麼都不做。這裏是我的代碼:C#| WPF - 自定義標題欄 - 最大化時拖動窗口不起作用
static Window Window { get { return Application.Current.MainWindow; } }
/// <summary>
/// TitleBar_MouseDown - Drag if single-click, resize if double-click
/// </summary>
private static void TitleBar_MouseDown(object sender, MouseButtonEventArgs e)
{
if (e.ChangedButton == MouseButton.Left)
{
if (e.ClickCount == 2)
{
AdjustWindowSize();
}
else
{
Window.DragMove();//Here is where I do the drag move
}
}
}
/// <summary>
/// Adjusts the WindowSize to correct parameters when Maximize button is clicked
/// </summary>
internal static void AdjustWindowSize()
{
if (Window.WindowState == WindowState.Maximized)
{
SystemCommands.RestoreWindow(Window);
}
else
{
SystemCommands.MaximizeWindow(Window);
}
}
#region Button Events
/// <summary>
/// CloseButton_Clicked
/// </summary>
public static void Close()
{
SystemCommands.CloseWindow(Window);
}
/// <summary>
/// MaximizedButton_Clicked
/// </summary>
public static void Maximize()
{
AdjustWindowSize();
}
/// <summary>
/// Minimized Button_Clicked
/// </summary>
public static void Minimize()
{
SystemCommands.MinimizeWindow(Window);
}
#endregion
現代的UI和MahApps.Metro確實不知何故,我看了看他們的源代碼簡單,但無法找到他們是如何做到這一點。
在此先感謝。
正常的標題欄我試過了,但沒有奏效。它做了一些時髦的東西。 –
你可以發佈你的應用程序的工作示例?我可以在這裏嘗試一下嗎? – pushpraj
你知道該怎麼做嗎? –