1 意义
我们默认创建的窗口样式如下,时常会觉得这窗口太老套,从WINDOWS 98开始就这样,能不能做点改变?
答案是肯定的,下面就介绍如何创建自己的任意形状的窗口;
2 原理
在窗口上面绘制一个闭合图形(圆、path、图片、矩形等),然后设置WindowStyle为none,设置AlowsTransparency为true,这样可以去掉原有风格的最大化最小化、边框、title等元素,得到一个只能看到我们的闭合图形的窗口,再在上面重写最大化、最小化、关闭、拖动等函数即可;
3 实现步骤
3.1 新建工程
新建工程如下图设置;
3.2 设置窗体对象属性
在对象和时间栏选择window窗体对象,属性栏将会自动显示窗体的相关属性,找到外观栏展开勾选AlowsTransparency属性,设置windowStyle为none;
3.3 插入闭合图形
这里笔者使用两个圆,在实际可使用path、矩形或者插入一张图片都可;调整其背景色;在对象和时间栏选中windows对象,设置其background的alpha值为0。
现在得出效果如下,这也就是自定义窗口的雏形了:
3.4 添加功能函数
添加最大化、最小化、和关闭按钮(注意笔者在这里添加的是自定义的按钮),并为其添加click响应,选中对应按钮,属性面板中选中属性选项卡,点击 事件图标,添加click事件;
private void clickWinClose(object sender, System.Windows.RoutedEventArgs e)
{
// 在此处添加事件处理程序实现。
this.Close();
}
private void clickWinMax(object sender, System.Windows.RoutedEventArgs e)
{
// 在此处添加事件处理程序实现。
this.WindowState = WindowState.Maximized;
}
private void clickWinMin(object sender, System.Windows.RoutedEventArgs e)
{
// 在此处添加事件处理程序实现。
this.WindowState = WindowState.Minimized;
}
到此基本完成了自定义窗口了,运行效果如下:
3.5 补充说明
由于笔者没什么美感,所以做出来的窗口丑陋,大家可以自己做出更多漂亮的窗口,特别是用图片。此外大家还可以加上还原按钮、窗体的拖动等功能。
第一次在博客上写篇像样的文章,希望能对大家有用,另外如果有什么错误的地方,请大家指出,不胜感激!
作者:家乡的萝卜
QQ:309284701