• 如何用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

  • 相关阅读:
    解决linux sudo apt-get install xx是2出现无法定位软件包方法
    python的基础语法
    python 之装饰器
    Python-生成器
    Python中if __name__ = "__main__"的理解
    VS Code上配置python虚拟环境
    sympy简明用法
    Pandas中两个DataFrame的差集
    Time Series in pandas
    PyQt5高清屏幕自适应设置 QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
  • 原文地址:https://www.cnblogs.com/qiujiahong/p/2388791.html
Copyright © 2020-2023  润新知