在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 = falsei = 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 标题栏事件
给对应的按钮加上事件就可以了
创建Winform应用程序项目。打开VS2013,文件->新建->项目...,新建一个Windows窗体应用程序项目,项目名称为“Winform调用WPF窗体”。
为Form1添加一个按钮,用于打开WPF窗体。
创建待调用的WPF窗体。
为解决方案添加一个WPF应用程序项目,右键解决方案,添加->新建项目,创建一个WPF应用程序项目。
在WPF应用程序界面上拖放一个TextBox(测试键盘输入)和Button按钮(调用Winform窗体,下篇经验介绍)。
为项目添加WPF相关引用。
以及待调用“WPF窗体”项目
这个是win 7 Aero 功能的一个特色,使用该功能必须使用Aero主题,设置方法如下:1、在桌面的空白处,右击鼠标。选择“个性化”
2、在“更改计算机上的视觉效果和声音”中选择“Aero主题”中某一个主题,如“window7”
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)