最近在整理和编写基于C#的WinForm应用程序,然后碰到一个其他读者也可能碰到的问题,就是C#的Borderless无边框窗体的动画效果问题。

在Visual Studio 2022里,C#的WinForm程序提供了Borderless无边框窗体的样式效果,但是它没提供在无边框窗体下,窗体的载入、最小化、最大化的动画效果就没处理了。这个动画效果问题很多读者该也碰到过。我搜过其它的无边框窗体的例子,很多都是只在按钮里设置窗体状态为最小化、最大化,但是这个窗体却直接显示和直接消失的,没有那个带标题栏窗体的动画效果。所以,为了解决这个问题,就需要自己去处理这个无边框窗体的动画效果了。经过一番搜索和编码,终于有了今天这个完美的无边框窗体的动画效果解决方案的博文。具体看下面的介绍:

  1、 项目目录;

  项目目录见下面的截图,具体请打开解决方案进行查看。

  

  2、 一些代码的介绍;

  下面进行一些功能代码的介绍。

  1) 无边框窗体父类定义;

  该父类笔者整理放在了Componet目录里的BorderlessAnimation目录里,直接复制该目录到对应的项目里,具体的代码读者自己更改Native.cs文件和FormBase.cs文件里的命名空间,然后放在对应的组件库里或者项目文件夹下,让其它使用到的窗体能够应用。

  该父类使用到的一些API函数放在了Native.cs里面。而FormBase文件为窗体的继承类,里面主要对窗体的消息处理等函数进行了编写。

  2) 无边框窗体示例代码;

  该窗体继承类,主要处理窗体的消息,然后进行执行操作,下面主要是一个例子,实现函数在文件下面。请读者自己阅读。因为比较简单,所以没有进行注释编写。

  

  3) 窗体应用例子;

  项目里提供了两个窗体使用示例。Demo1是原来的例子,Demo2是笔者自己写的一个使用例子,更加简洁,读者直接根据需要进行修改即可。

  

  3、 运行效果图;

  这里提供一下运行的效果:

  1) 原来的例子:

  

  2) 简洁的例子:

  

  4、 源码下载;

  这里提供源码下载,请需要的读者打开下面的链接:https://download.csdn.net/download/lzhdim/88084280

  

  写到最后,如果大家对该方案有啥问题的,欢迎大家对源码进行修改更新,让该方案的源码能够给更多的需要解决无边框窗体动画效果的读者以帮助。其实,这个无边框窗体父类主要是通过Windows系统提供的API函数对窗体进行了改造,然后处理相关的窗体消息进行执行而已,具体请读者自己阅读源码。这个解决方案是笔者目前整理的最完美的C#无边框窗体的解决方案了,如果读者还有其它更好的方案及源码,请提供出来让笔者也能够进行应用。

基于C#的无边框窗体动画效果的完美解决方案 - 开源研究系列文章的更多相关文章

  1. Qt无边框窗体-模拟模态窗体抖动效果

    目录 一.概述 二.效果展示 三.功能实现 四.相关文章 原文链接:Qt无边框窗体-模拟模态窗体抖动效果 一.概述 用Qt开发windows客户端界面确实是一大利器,兼顾性能的同时,速度相对来说也不错 ...

  2. 【转】【WPF】 WPF 调用API修改窗体风格实现真正的无边框窗体

    WPF中设置无边框窗体似乎是要将WindowStyle设置为None,AllowTransparency=true,这样才能达到WinForm中无边框窗体的样式.但是AllowTransparency ...

  3. WPF 调用API修改窗体风格实现真正的无边框窗体

    原文:WPF 调用API修改窗体风格实现真正的无边框窗体 WPF中设置无边框窗体似乎是要将WindowStyle设置为None,AllowTransparency=true,这样才能达到WinForm ...

  4. 01.WPF中制作无边框窗体

    [引用:]http://blog.csdn.net/johnsuna/article/details/1893319   众所周知,在WinForm中,如果要制作一个无边框窗体,可以将窗体的FormB ...

  5. C#WinForm无边框窗体移动方法、模仿鼠标单击标题栏移动窗体位置

    C#WinForm无边框窗体移动方法.模仿鼠标单击标题栏移动窗体位置 这里介绍俩种办法 方法一:直接通过修改窗体位置从而达到移动窗体的效果 方法二:直接伪装发送单击任务栏消息,让应用程序误以为单击任务 ...

  6. C#自定义按钮、自定义WinForm无边框窗体、自定义MessageBox窗体

    C#自定义按钮.自定义WinForm无边框窗体.自定义MessageBox窗体 C#自定义Button按钮控件 效果展示 C#自定义Winform无边框窗体 效果展示 C#自定义无边框MessageB ...

  7. C#自定义Winform无边框窗体

    C#自定义Winform无边框窗体 在实际项目中,WinForm窗体或者控件不能满足要求,所以就需要自己设计窗体等,当然设计界面可以用的东西很多,例如WPF.或者一些第三方的库等.本例中将采用WinF ...

  8. 【C#】使用DWM实现无边框窗体阴影或全透窗体

    1.无边框窗体阴影,win7(需要开启Aero效果)及以上系统 public class LdwmForm : Form { public LdwmForm() { Initialize(); } / ...

  9. MFC 无边框窗体实现用鼠标拖动窗体边缘实现窗体大小变化

    无边框窗体如何实现用鼠标拖动窗体边缘实现窗体大小变动呢?下面介绍一种方法,通过以下几个步骤即可实现: 1.实现WM_NCHITTEST消息,实现四条边框的模拟 2.实现WM_NCLBUTTONDOWN ...

  10. WinForm无边框窗体移动方法

    C#WinForm无边框窗体移动方法.模仿鼠标单击标题栏移动窗体位置 这里介绍俩种办法 方法一:直接通过修改窗体位置从而达到移动窗体的效果 方法二:直接伪装发送单击任务栏消息,让应用程序误以为单击任务 ...

随机推荐

  1. CSS 基础拾遗(核心知识、常见需求)

    本篇文章围绕了 CSS 的核心知识点和项目中常见的需求来展开.虽然行文偏长,但较基础,适合初级中级前端阅读,阅读的时候请适当跳过已经掌握的部分. 这篇文章断断续续写了比较久,也参考了许多优秀的文章,但 ...

  2. .net使用nacos配置,手把手教你分布式配置中心

    .net使用nacos配置,手把手教你分布式配置中心 Nacos是一个更易于构建云原生应用的动态服务发现.配置管理和服务管理平台. 这么优秀的分布式服务管理平台,怎么能不接入呢? nacos的安装和使 ...

  3. ASP.NET Response.Filter

    寫 ASP.NET 有時候會想要在畫面輸出前一刻進行攔截,並換掉 html 中的特定字元.例如網站中有許多頁面都有 www.google.com.tw 的超連結,我希望在測試機上可以把連結換成 www ...

  4. 2023-03-20:给定一个无向图,保证所有节点连成一棵树,没有环, 给定一个正数n为节点数,所以节点编号为0~n-1,那么就一定有n-1条边, 每条边形式为{a, b, w},意思是a和b之间的无

    2023-03-20:给定一个无向图,保证所有节点连成一棵树,没有环, 给定一个正数n为节点数,所以节点编号为0~n-1,那么就一定有n-1条边, 每条边形式为{a, b, w},意思是a和b之间的无 ...

  5. vue全家桶进阶之路20:ECMAScript脚本语言规范

    ECMAScript(简称 ES)是一种由 Ecma 国际组织定义的脚本语言标准,它定义了 JavaScript 语言的基本规范和特性.JavaScript 是一种基于 ECMAScript 标准的编 ...

  6. django视图中使用return redirect(reverse('')) 没有传参出现题:Reverse for ‘‘ with no arguments no arguments not

    redirect 的作用是跳转 reverse的作用是反向解析 当无法反向解析的时候要确认urls.py中的path参数,name参数是否一直

  7. SQL Server:User, group, or role 'iemis' already exists in the current database.

    --最新的解决方法 --先创建用户帐户,不进行授权,然后通过下面的SQL语句将该用户帐户关联至对应的数据库用户.优点是避免了重新授权的操作. USE tempdbEXEC sp_change_user ...

  8. pages.json 文件:pages 节点

    pages uni-app 通过 pages 节点配置应用由哪些页面组成,pages 节点接收一个数组,数组每个项都是一个对象,其属性值如下: 属性 类型 默认值 描述 path String   配 ...

  9. 原来.NET写的Linux桌面这么好看?

    如何使用Blazor在Linux平台下运行Desktop程序 本文将讲解如何使用Blazor运行跨平台应用,应用到的技术有以下几点 Blazor Masa Blazor Photino.Blazor ...

  10. win10双系统Ubuntu的安装之旅(安装+美化+问题解决方案)

    一.前言 最近想用一下Ubuntu,于是乎开始了win10安装Ubuntu的旅程,安装的过程中是看到了很多前人已经写好的非常详细的教程,那这里我就不再重复造轮子啦,直接放上链接咯- 看看我的成果图- ...