上一篇我们说了去掉丑陋的标题栏变成无边框,这一篇我们说一下怎么制作自己想要的漂亮标题栏代替系统默认的。
在WPF中自定义窗体标题栏,首先需要将窗体的WindowStyle属性设置为None,隐藏掉WPF窗体的自带标题栏。然后可以在窗体内部自定义一个标题栏。

后台的事件:
后台的事件:
#region 标题栏事件
/// <summary> /// 窗口移动事件
/// </summary> private void TitleBar_MouseMove(object sender, MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
this.DragMove();
}
}
int i = 0;
/// <summary> /// 标题栏双击事件
/// </summary>
private void TitleBar_MouseDown(object sender, MouseButtonEventArgs e)
{
i += 1;
System.Windows.Threading.DispatcherTimer timer = new System.Windows.Threading.DispatcherTimer();
timer.Interval = new TimeSpan(0, 0, 0, 0, 300);
timer.Tick += (s, e1) => { timer.IsEnabled = false; i = 0; };
timer.IsEnabled = true;
if (i % 2 == 0)
{
timer.IsEnabled = false;
i = 0;
this.WindowState = this.WindowState == WindowState.Maximized ?
WindowState.Normal : WindowState.Maximized;
}
}
/// <summary> /// 窗口最小化
/// </summary> private void btn_min_Click(object sender, RoutedEventArgs e)
{
this.WindowState = WindowState.Minimized; //设置窗口最小化 }
/// <summary> /// 窗口最大化与还原
/// </summary> private void btn_max_Click(object sender, RoutedEventArgs e)
{
if (this.WindowState == WindowState.Maximized)
{
this.WindowState = WindowState.Normal; //设置窗口还原 }
else {
this.WindowState = WindowState.Maximized; //设置窗口最大化 }
}
/// <summary> /// 窗口关闭
/// </summary>
private void btn_close_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
#endregion 标题栏事件
给对应的按钮加上事件就可以了
网友评论