问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用C#做出aero效果的界面,用windows Form界面,最好是毛玻璃...

发布网友 发布时间:2024-01-13 08:36

我来回答

2个回答

热心网友 时间:2024-08-20 22:12

我以前做过一个,这是主要代码,需要添加引用dwmapi.dll
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Drawing.Drawing2D;

namespace AeroForm
{
public partial class Form1 : Form
{
int en;

public struct MARGINS
{
public int m_Left;
public int m_Right;
public int m_Top;
public int m_Buttom;
};

[DllImport("dwmapi.dll")]
private static extern void DwmIsCompositionEnabled(ref int enabledptr);
[DllImport("dwmapi.dll")]
private static extern void DwmExtendFrameIntoClientArea(IntPtr hWnd, ref MARGINS margin);

public Form1()
{
InitializeComponent();
en = 0;
MARGINS mg = new MARGINS(); //定义透明扩展区域的大小,这里全部-1,即全部透明
mg.m_Buttom = -1;
mg.m_Left = -1;
mg.m_Right = -1;
mg.m_Top = -1;
//判断是否Vista及以上的系统
if (System.Environment.OSVersion.Version.Major >= 6)
{
DwmIsCompositionEnabled(ref en); //检测Aero是否为打开
if (en > 0)
{
DwmExtendFrameIntoClientArea(this.Handle, ref mg); //透明
}
else
{
MessageBox.Show("Desktop Composition is Disabled!"); //未开启透明桌面
}
}
else
{
MessageBox.Show("Please run this at least on Windows Vista."); //至少在vista运行
}
this.Paint += new PaintEventHandler(Form1_Paint);
}

private void Form1_Paint(object sender, PaintEventArgs e)
{
if (en > 0)
{
Graphics g = e.Graphics;
SolidBrush bsh = new SolidBrush(Color.Black);
g.FillRectangle(bsh, this.ClientRectangle);
bsh.Dispose();
}
Graphics h = this.CreateGraphics();
GraphicsPath blackfont = new GraphicsPath();
SolidBrush brsh = new SolidBrush(Color.Black);
blackfont.AddString("你想写的字", new FontFamily("微软雅黑"), (int)FontStyle.Regular, 26, new Point(30, 30), StringFormat.GenericDefault);
h.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
h.FillPath(brsh, blackfont);
}
}
}

热心网友 时间:2024-08-20 22:14

楼上正解,给他分吧
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
猫咪丢了之后心里很难过,然后男友担心我就重新去领养了一只小花猫,可是... 有关名侦探柯南黑暗组织!! qq上删除的好友怎么找回来,六个月以上的。只要能找到QQ号就行,我可以... 六个月内删掉的qq好友能找回吗? 急!!因欠费而停机的手机能收到短信吗 手机关机之后停机信息是否可以收到 手机欠费后冲了钱但还是欠费会收到短信吗 手机停机了,包月的流量没用完,能收到微信吗? 德州到潍坊用不用隔离? 南都周刊2011年有一篇社论≪躺在时间的河流上怀念他们≫写得很棒... 沈阳中海天誉售楼处电话是多少? 海南惠聚信息与京东关系 沈阳万达盛京ONE售楼部电话多少? 怎么修改?已经修改过一次了 想再修改一次。 繁殖场生产工艺设计的基本原则有哪些? 翠微 美食消费卡有效期几年 手机号绑定了达到限制不能绑定其他是什么意思? 一年内第二次修改技巧 改错了未满一年怎么改回来 股东净利润怎么计算 ...但修车后对方不付维修费,我无法提车怎么办? 怎样将星标朋友取消 ...方向均知),若合力不变,其中一分力不变,另一分力大小是否变化_百度... 如果两个力的合力是定值,一个分力大小不变,另一个力大小或方向是否会改... ...的两个分力夹角不变,这个力增大,其中一个分力不变,则另一个分力怎么... 微信手机号在24小时内,已绑定两个,已达到限制,不能在绑定其他微信... 七年级道法考95分难吗 怎么二次修改 具体操作步骤 同一个手机号注册两个,新的刚注销,旧的怎么找回? 同一个手机号注册两个,新的刚注销,旧的怎么找回? 西安电子科技大学研究生能到大同大学当讲师吗? 没钱但是很想出国旅游怎么办 一个手机号,注册了两个,如果把新注销掉,旧会回来吗... 手机号1 24 手机号24小时内绑定了两个被限制 请问什么时候才能重 ... 先秦出现民本思想的原因? 我这样的电脑,想玩lol,换什么显卡和CPU能提升游戏帧数FPS 四片云还是四朵云 易语言怎么让启动窗口像穿越火线游戏界面那样?分辨率800*600 好的给分... 咳嗽能吃什么什么好的快 河南卫视天气预报的插曲英文歌曲名 分力夹角不变,分力越大,合力越小是什么情况 寄居蟹和下列哪一种生物是最好的合作伙伴 车在4S店修好了,对方全责不给交钱,我不能提车怎么办?他是全险不想自己... 钢铁疲劳期是多少年 穿越火线,高手回答 万家乐空气能怎么看是多少匹的? 怎么计算? 若两个分力夹角不变,分力增大,合力如何变化 车被撞,对方全责,可对方不愿去4s店交钱电话也不接,我也不能提,可否让... 请问:孙武到底是吴国人还是齐国人! 一个手机号,注册了两个,如果把新注销掉,旧会回来吗...