C# 分别在windows form和wpf中实现windows 7 玻璃(areo)效果

c# winform实现windows7毛玻璃效果 张宇轩 既然是系统API,当然就不只是WPF专用了。拆开了GlassHelper,主要内容就是两个PInvoke签名:DwmExtendFrameIntoClientArea控制窗体的玻璃效果,DwmIsCompositionEnabled检测系统的桌面组合功能是否打开。MARGINS是DwmExtendFrameIntoClintArea需要的参数结构,表达的是窗口四周的边框。实现全玻璃背景,其实就是将有玻璃效果的窗体边框向内扩展,当MARGINS足够大之后,就全变成玻璃状态了。PInvoke签名 阅读详情

在windows7中大量使用了玻璃效果(也就是说Areo效果)感觉非常漂亮。平时自己做一些小东西也很想要这个效果,于是琢磨了一下。


1、在windows form程序中实现玻璃效果
这里要用到微软提供的 Windows 7 API Code Pack
注:使用此API可以实现很多windows 7的特效(如:jumplist,areo,任务栏图标显示任务进度,等等。。。)

首先在程序中引入上面的API,然后只需要把我们的Form窗体继承自Microsoft.WindowsAPICodePack.Shell.GlassForm就可以了。

public partial class AeroForm : GlassForm

效果:


2、在wpf程序中实现玻璃效果

这里我们同样用系统提供的API来实现


    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            this.Background = Brushes.Transparent;
            ExtendAeroGlass(this);
        }

        [StructLayout(LayoutKind.Sequential)]
        public struct MARGINS
        {
            public int cxLeftWidth;
            public int cxRightWidth;
            public int cyTopHeight;
            public int cyBottomHeight;
        };

        [DllImport("DwmApi.dll")]
        public static extern int DwmExtendFrameIntoClientArea(
            IntPtr hwnd,
            ref MARGINS pMarInset);

        private void ExtendAeroGlass(Window window)
        {
            try
            {
                // 为WPF程序获取窗口句柄
                IntPtr mainWindowPtr = new WindowInteropHelper(window).Handle;
                HwndSource mainWindowSrc = HwndSource.FromHwnd(mainWindowPtr);
                mainWindowSrc.CompositionTarget.BackgroundColor = Colors.Transparent;

                // 设置Margins
                MARGINS margins = new MARGINS();

                // 扩展Aero Glass
                margins.cxLeftWidth = -1;
                margins.cxRightWidth = -1;
                margins.cyTopHeight = -1;
                margins.cyBottomHeight = -1;

                int hr = DwmExtendFrameIntoClientArea(mainWindowSrc.Handle, ref margins);
                if (hr < 0)
                {
                    MessageBox.Show("DwmExtendFrameIntoClientArea Failed");
                }
            }
            catch (DllNotFoundException)
            {
                Application.Current.MainWindow.Background = Brushes.White;
            }
        }
    }

效果和上面的图片一致。

C# 对PdfiumViewer工具栏进行自定义,实现放大缩小,首页, 尾页,上一页等功能。 关于PdfiumViewer的介绍 C# 使用PdfiumViewer实现对PDF文档打印预览(二),可以查看上一篇的文章。因为控件在工具栏展现的功能只有 保存、打印、放大、缩小这四个,现在想加上首页、尾页、上一页(下一页)的功能,以及显示当前页码,扩展一下功能。改造成下面这个样子。 阅读详情

相关推荐

WPF实现毛玻璃效果

1和2需要Microsoft.WindowsAPICodePack.Shell.dll 和引用using System.Windows.Interop,并只能在有DwmApi.dll 版本的Windows操作系统下使用。这两种方法的共同缺点是:在启动窗体时会一闪。 一、 [StructLayout(LayoutKind.Sequential)] public struct M

KingsCrown的专栏 3768

C#开发PACS医学影像处理系统(四):界面布局之状态栏

状态栏一般用于显示系统状态,例如影像数量统计、CPU和内存使用情况、全屏时显示日期等, 同样也是采用WPF控件的Grid作为容器,布局使用 VerticalAlignment="Bottom" 普通配置的Win7和Win10一般内存使用不超过200M,CPU不超过5,除了一些老医院还在用XP系统,实在太烂可以放宽要求,但要保证软件的运行速度和控制资源占用。 其中CPU、内存、系统时间监控代码如下: /// <summary> /// 获取程序运行...

罗万科技的博客 1022

C#实现WIN7锁屏(仿WIN8锁屏)

C#实现在WIN7和XP下都有效的锁屏,仿WIN8锁屏界面,屏蔽任务管理器,ALT+F4,CTRL+ESC,屏蔽WIN键,默认密码123,可改锁屏密码,可以更换锁屏头像。

C# Winform 窗体美化(七、Win7 Aero 毛玻璃效果)

七、Win7 Aero 毛玻璃效果 在 Win7 上有一种 Aero 效果,毛玻璃透明效果,搭配不同风格的颜色,效果很好。在学习 Winform 美化的时候顺便看到的这种效果,也整理进来了。

于大大大洋 1万+

WPF仿Windows7界面效果

WPF仿Windows7界面效果

WPF 模仿Win7特效以及苹果部分特效

WPF 模仿Win7特效以及苹果部分特效

c# 打开的窗口显示在最前面_Win7系统电脑任务栏不显示打开的程序或窗口怎么办?...

Win7电脑任务栏无法显示打开程序的图标怎么办?当我们打开窗口或者程序时,会在任务栏进行显示,但是最近有用户发现,打开后任务栏不显示任何程序图标或者窗口图标,该如何解决呢?解决办法:1、找到任务栏,右键。属性;2、打开任务栏属性,找到常规里面的—自动隐藏任务栏选项 。把前面的那个 勾 去掉即可。如果不是上述情况,一般是由于桌面进程出错。重启计算机,或注销重新登录即可恢复正常,装机系统,如果您有正在...

weixin_39894778的博客 1042

WPF:将我们的应用程序与Windows 7任务栏集成(I)

Windows 7的任务栏是操作系统的主要更改之一,并带来许多优点。

C#语言操作Win7系统任务栏(TaskBar)中程序图标的背景进度条

一、问题描述 在使用火狐浏览器(47.0.1)下载文件时,我注意到我的Win7系统任务栏火狐程序图标的背景部分会变成一个进度条,实时展示下载进度。 于是我想了下怎么用C#语言实现这个功能,也上网查了些资料。后来我发现问题并不像我想的这么简单,因为这个功能并不存在于.NET Frame...

509

WPF玻璃效果&按钮自定义样式示例

WPF玻璃效果&按钮自定义样式示例 效果图: http://www.hoount.com/picture/cindy/2012+01+15pm18-06-28.jpg

SAP交货单过账避坑指南:序列号处理、Buffer清理与BAPI提交回滚的那些事儿

本文深入解析SAP交货单过账中的序列号处理、Buffer清理与BAPI提交回滚等关键问题,提供WS_DELIVERY_UPDATE和BAPI_OUTB_DELIVERY_CONFIRM_DEC的实战优化方案。通过详细的技术分析和最佳实践,帮助开发者避免常见陷阱,提升交货单处理的稳定性和效率。

weixin_31155097的博客 431

在Winform和WPF中启用Aero效果

API导入: View Code public class DwmApi { [DllImport("dwmapi.dll", PreserveSig = false)] public static extern void DwmEnableBlurBehindWindow(IntPtr hWnd, DWM_BLURBE...

weixin_34013044的博客 253

[pytorch] MedicalNet 3D Resnet预训练模型迁移学习实战:从分割到分类的代码改造

本文详细介绍了如何利用PyTorch对MedicalNet 3D ResNet预训练模型进行迁移学习,从分割任务改造为分类任务。通过解析模型结构、调整分类头、加载预训练权重及优化训练策略,帮助开发者在医疗影像领域快速实现高效模型部署。文章还涵盖了数据预处理、增强技巧及模型轻量化等实用内容。

kmeans3miner的博客 246

如何在win7同样支持Webview2 在 WPF 中使用本地 Webview2 ,如何不依赖系统 Runtime

项目运行环境:考虑到很多老项目,本项目使用的是.Net更高版本的其实也是可以支持的。

weijia3624的专栏 1万+

JLink版本不兼容?手把手教你解决APM32F003F6P6在Keil中烧写闪退和报错

本文详细解析了APM32F003F6P6在Keil中烧写闪退和报错的解决方案,重点介绍了JLink版本兼容性问题。通过实测不同版本组合,推荐使用JLink 7.20a或6.86b与Keil 5.25的黄金组合,并提供详细的降级驱动和工程配置步骤,帮助开发者高效解决烧写困境。

weixin_33694620的博客 416

第54节:vue3+cesiumjs

对之前的vue2+cesiumjs 进行了升级

qq_29384639的博客 62

windows api实现窗口透明整理

1. 实现窗口彻底透明 2.实现背景透明控件不透明一 3.实现背景透明控件不透明正式方案 4.动图显示异常分析 1. 实现窗口彻底透明 实现这种效果的方案网上介绍很多,基本原理都一样,在这里还是重复记录一次。 效果图: 这种透明效果整个窗口的所有内容全部透明,可以看到图中红色箭头所指,从这个窗口可以看到底层的source tree的按钮。 代码实现: ...

zhuiyuanqingya的博客 1万+

万字长文,小白新手怎么开始做YOLO实验,从零开始教!整体思路在这里,科研指南针!

万字长文,小白新手怎么开始做YOLO实验,从零开始教!整体思路在这里,科研指南针!

Coding... 1万+

【WPF】Windows系统桌面应用程序编程开发新手入门-打造自己的小工具

电脑Windows系统上的桌面程序通常是用Visual Studio 开发工具编写出来的,有两种开发方式供选择,一种是WindowForm,简称WinForm,另一种是Windows Presentation Foundation,简称WPF,这里将学习WPF项目。

4867

文章ACCEPT之后填写内容教程-Springer-Verlag即施普林格

1. 确认corresponding author通讯作者机构是否正确(最好细分到系,如搜不到系只填大学也可)这些信息因为在投稿的时候都填过,所以一般都没问题,可确认并继续。2. Co-Author: 这篇文章有没有其他作者,如果有就选yes,并确认投稿时所填的作者姓名和机构是否正确。这个也是如果前期都填对了就不用修改。3. Research funders: 问文章的研究有没有资助,没有就选no,有就选yes,并填写机构名称和grant/contact numbers。

ZhangJiqun&191cm&85kg 4783

S/4HANA 迁移前的必修课:用 SCMON 找出沉睡的自定义代码

SAP S/4HANA迁移项目中,SCMON工具能有效解决历史代码评估难题。通过监控ABAP对象调用情况,SCMON可识别40-60%处于"沉睡"状态的自定义代码。配置时需注意监控周期(建议3-6个月)和数据保留期(建议1年),并配合Time Slices功能进行时段分析。工具导出的调用数据可与测试覆盖率对比,帮助决策代码迁移优先级。实际应用中需结合业务场景,建议与SUSG工具配合使用,并保持持续监控。SCMON虽不能完全替代人工判断,但其提供的客观数据能显著提升迁移决策的科学性,建议在

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 291

WPF案例(-)模拟Windows7 Win+Tab切换

一个使用Wpf模拟Windows7 Win+Tab页面切换的小程序,使用快捷键Ctrl+Down或Ctrl+Up在示例程序各个页面元素之间滑动导航,在本例中,使用Viewport2DVisual3D宿主二维控件,在这里为方便示例,二维控件仅简单的使用了一个Image,以下是界面缩略图,有兴趣的朋友可以下载源码 在建立本示例中的三维场景时,使用了Viewport3D,Pers...

weixin_30279671的博客 175

基于CANopen协议,实现机器人500-1000Hz高频控制(附实操实例) (1)

基于CANopen协议实现机器人500-1000Hz高频控制,核心不是“协议本身的性能极限”,而是“通过优化配置、硬件适配、软件调优,最大化发挥协议的实时性优势”。关键在于:以PDO为核心实现实时数据传输,以SYNC帧锁定高频同步周期,以精简冗余、优化硬件降低总线负载,同时通过实操调试解决周期漂移、延迟、干扰等问题。

start_up_go的博客 93

WPF嵌入CefSharp在Win7系统运行出现 CLR20r3报错

将CefSharp替换为108.4.130版本解决问题,仅供参考。

我的世界 1775

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

抛砖引玉 【镜像控件】 WPF实现毛玻璃控件不要太简单

源码已封装成 MirrorGrid类 可以直接在XAML里添加 根据需要可以把Grid 改为  button border等控件 注意 Target必须为当前控件下层的控件对象   加个BlurEffect就是毛玻璃效果 &lt;!--玻璃层控件--&gt; &lt;local:MirrorGrid Background="Red" ...

记事本 2861

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

C#WPF程序在win7下运行报0xc000007b错误

1、DirectX9.0未安装 2、.NET framework 不正常 3、C++运行库不完善 逐一按上术检查环境,一般能解决报错问题。

sclibingqing的博客 1648

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

下一篇: C# 在windows form实现不规则窗体&透明窗体
Hauk
博客等级 码龄15年 219粉丝 20原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值