木石之间 2020-12-07 16:41 采纳率: 100%
浏览 396
已结题

C# 窗体白色透明试,图案外围出现一圈锯齿边缘怎么处理?

白色背景图 显示这个正常的,白色被掩盖了。图片出现在黑色背景上出很严重的锯齿边缘。用的是TransparencyKey ,这个有什么办法解决吗?

   this.TransparencyKey = System.Drawing.Color.White;
  • 写回答

2条回答 默认 最新

  • 佛系少年江流儿 2020-12-07 17:06
    关注
    1. 控件OnPaint时设置高质量、抗锯齿
    g.CompositingMode = CompositingMode.SourceOver;
    g.CompositingQuality = CompositingQuality.HighQuality;
    g.InterpolationMode = InterpolationMode.HighQualityBicubic;
    g.PixelOffsetMode = PixelOffsetMode.HighQuality;
    g.SmoothingMode = SmoothingMode.AntiAlias;
    
    
    2. 设置控件支持透明背景,无解。
    SetStyle(ControlStyles.SupportsTransparentBackColor | ControlStyles.UserPaint, true);
    this.BackColor = Color.Transparent;
    
    
     3. 设置控件支持透明背景方法2,无解。
    protected override CreateParams CreateParams
    {
        get
        {
            CreateParams cp = base.CreateParams;
            cp.ExStyle |= 0x00000020; //WS_EX_TRANSPARENT
            return cp;
        }
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?