C#不规则窗体

通过重写窗体的Onpaint方法来加载要在窗体中显示的图片,好象要用到重写方法override写详细点,我之前用的是form.Region=newregion(graph... 通过重写窗体的Onpaint方法来加载要在窗体中显示的图片,好象要用到重写方法override
写详细点,我之前用的是form.Region=new region(graphicpath)
回答好追加分。
展开
 我来答
stabler
2010-03-18
知道答主
回答量:16
采纳率:0%
帮助的人:15.6万
展开全部
一:使用位图文件作为窗口背景
1.先使用绘图软件创建不规则窗体的位图,最好设置单一背景颜色,记好背景颜色。
2.将所选窗体 FormBorderStyle 属性设置为 None。
3.将BackgroundImage 属性设置为先前创建的位图文件。
4.将 TransparencyKey 属性设置为位图文件的背景色。
5.电脑监视器的颜色深度设置应小于 24 位,否则无论 TransparencyKey 属性是如何设置的,窗体的非透明部分都会产生显示问题。
6.由于隐藏了标题栏,需要自己编写移动和关闭窗体的代码。
二:也可自己创建形状背景(如椭圆)此时需重写Onpaint方法
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
System.Drawing.Drawing2D.GraphicsPath shape = new System.Drawing.Drawing2D.GraphicsPath();
shape.AddEllipse(0, 0, this.Width, this.Height);
this.Region = new System.Drawing.Region(shape);
}
zhisuiwi992
推荐于2016-09-30
知道答主
回答量:7
采纳率:0%
帮助的人:0
展开全部
听我说,你要设置某图片为背景,并且为不规则窗体
是这样的
在你的Form1.cs中首先输入:
protected override void OnPaint(PaintEventArgs e)
{

GraphicsPath graphicpath = CalculateControlGraphicsPath(bitmap);
this.Region = new Region(graphicpath );

}

因为graphicpath是你所选的图片的区域,所以要用一些方法
public GraphicsPath CalculateControlGraphicsPath(Bitmap bitmap)
{
GraphicsPath graphicpath = new GraphicsPath();
Color tran = bitmap.GetPixel(0, 0);
for (int row = 0; row < bitmap.Height; row++)
{
for (int wid = 0; wid < bitmap.Width; wid++)
{
if (bitmap.GetPixel(wid, row) != tran)
{
graphicpath.AddRectangle(new Rectangle(wid, row, 1, 1));
}
}
}
return graphicpath;

}

差不多就可以了,因为每张图片做为窗体背景,背景色都为白色,我们遍历所有区域,如果有哪个区域不是白色,就是我们要选择的区域
我这么说,你大概懂了吧
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
牵瑶东郭涵涵
2019-02-22 · TA获得超过3761个赞
知道大有可为答主
回答量:3197
采纳率:28%
帮助的人:206万
展开全部
private
void
Form1_Paint(object
sender,
System.Windows.Forms.PaintEventArgs
e)
{
System.Drawing.Drawing2D.GraphicsPath
myPath=new
System.Drawing.Drawing2D.GraphicsPath();
myPath.AddEllipse(new
Rectangle(new
Point(0,0),this.ClientSize));
this.Region=new
Region(myPath);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
比尔多尔曼
2010-03-17
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
各位英雄,她的问题就是我的问题
我也有一样的困扰,请各位大侠相助
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式