首页 > 后端开发 > C++ > 如何在 C# 中在 PictureBox 上显示透明标签?

如何在 C# 中在 PictureBox 上显示透明标签?

Mary-Kate Olsen
发布: 2025-01-25 16:16:10
原创
715 人浏览过

How to Display a Transparent Label Over a PictureBox in C#?

在C#窗体中显示PictureBox上方的透明标签

在C#窗体中,尝试在PictureBox上显示透明标签时,用户可能会遇到灰色背景而不是预期的透明效果。这是因为PictureBox不是容器控件。

解决方案1:代码实现

要解决此问题,请修改窗体构造函数,将标签的父级更改为PictureBox并重新计算其位置。

public Form1() {
    InitializeComponent();
    var pos = label1.Parent.PointToScreen(label1.Location);
    pos = pictureBox1.PointToClient(pos);
    label1.Parent = pictureBox1;
    label1.Location = pos;
    label1.BackColor = Color.Transparent;
}
登录后复制

解决方案2:设计时增强

或者,通过创建一个继承自ParentControlDesigner的自定义类来解决设计时问题。

using System.ComponentModel;
using System.Windows.Forms;
using System.Windows.Forms.Design;    // 添加对System.Design的引用

[Designer(typeof(ParentControlDesigner))]
class PictureContainer : PictureBox {}
登录后复制

说明

通过以上方法将PictureBox设为容器控件,标签将成为PictureBox的子控件,其透明度将正确地显示在PictureBox之上。

以上是如何在 C# 中在 PictureBox 上显示透明标签?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板