本文共 2112 字,大约阅读时间需要 7 分钟。
通过设置半透明图片,可以实现对父控件按钮的显示效果。透明的pane搭配半透明图片,确保背景内容清晰可见,同时突出重点内容。
在C#中,通过修改CreateParams的ExStyle属性,可以实现透明样式。这种方法避免了传统的覆盖方式,确保背景内容不受影响。
public partial class PanelEx : Panel { protected Graphics graphics; protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle |= 0x00000020; // 实现透明样式 return cp; } } public PanelEx() { InitializeComponent(); this.BackColor = Color.Transparent; this.ForeColor = Color.Transparent; } protected override void OnPaintBackground(PaintEventArgs pevent) { } protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); this.graphics = e.Graphics; this.graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; this.graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBilinear; this.graphics.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality; this.graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; this.graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; if (this.BackgroundImage != null) { int width = this.Width; int height = this.Height; Rectangle recModel = new Rectangle(0, 0, width, height); this.graphics.DrawImage(this.BackgroundImage, recModel); } else if (this.ForeColor != Color.Transparent) { this.graphics.Clear(this.ForeColor); } } } 该实现方式通过设置高质量的渲染参数,确保图像绘制效果最佳。背景图片绘制在前,前景绘制在后,从而实现半透明显示效果。
转载地址:http://tnvkz.baihongyu.com/