C#中怎样重写form才能使窗体支持透明色

C#中怎样重写form才能使窗体支持透明色... C#中怎样重写form才能使窗体支持透明色 展开
 我来答
skyfukk
2011-01-26 · TA获得超过1187个赞
知道小有建树答主
回答量:966
采纳率:100%
帮助的人:636万
展开全部
this.BackColor = System.Drawing.Color.Red;//将窗体背景设置成红色
this.TransparencyKey = System.Drawing.Color.Red; //将红色设置成透明色
将from的FormBorderStyle设置为None
测试的时候加个按钮之类的,要不什么都看不到
梵天弘业T2
2011-01-26 · TA获得超过2140个赞
知道小有建树答主
回答量:1305
采纳率:0%
帮助的人:983万
展开全部
听我说,你要设置某图片为背景,并且为不规则窗体
是这样的
在你的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;

}

差不多就可以了,因为每张图片做为窗体背景,背景色都为白色,我们遍历所有区域,如果有哪个区域不是白色,就是我们要选择的区域
我这么说,你大概懂了吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nhjjfv
2011-01-27 · TA获得超过3006个赞
知道小有建树答主
回答量:1396
采纳率:0%
帮助的人:1516万
展开全部
先PS一张心型图,外边是透明(或别的色),保存为gif或png
在vs中formBordStyle设为none,
第一种,外边是透明,backcolor设为XX色,下面transparencyKey同样设为XX色。
第二种,如心型外边是别的色,下面transparencyKey同样设为别的色。
OK
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c48b5061e
2018-07-22
知道答主
回答量:20
采纳率:0%
帮助的人:1.1万
展开全部
        //
        // 摘要: 
        //     获取或设置一个值,该值指示能否调整窗体的不透明度。
        //
        // 返回结果: 
        //     如果可以更改窗体的不透明度,则为 true;否则为 false。
        [Browsable(false)]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public bool AllowTransparency { get; set; }
        
        //
        // 摘要: 
        //     获取或设置窗体的不透明度级别。
        //
        // 返回结果: 
        //     窗体的不透明度级别。 默认值为 1.00。
        [DefaultValue(1)]
        [TypeConverter(typeof(OpacityConverter))]
        public double Opacity { get; set; }

C#的窗体本身就可以支持透明色,只要更改上面两个属性即可

namespace Project1
{
    class MainForm: Form
    {
        public MainForm()
        {
            Text = "MainForm";
            BackColor = Color.FromArgb(255, 255, 0, 0);
            AllowTransparency = true;
            Opacity = 0.5;
        }
     }
}

透明度为50%,效果如图

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式