如何用blend创建自定义窗口

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

原文地址:https://www.cnblogs.com/qiujiahong/p/2388791.html