【问题标题】:Transparent background for a control控件的透明背景
【发布时间】:2009-11-10 14:12:41
【问题描述】:

我正在开发一个 winforms 应用程序(使用 .NET 3.5)

在一个表单中,我有一个面板控件,其中有一个 datagridview 控件。

我想要一些控制权(为了简单起见 - 一个标签) 出现在 datagridview 的前面,并且我希望这个标签是 transparent - 这意味着:我想看到在 gridview 后面显示的数据。

我只想查看标签中的文本,而不是整个矩形 .. 以及该文本后面 - 以查看我在 gridview 中拥有的数据。

问题如下:标签的父控件不是gridview (因为它不是容器控件)。 label 的父级,是面板控件。

所以当我将标签设置为透明时..我实际上获得了面板的透明度,而不是 datagridview。

【问题讨论】:

    标签: winforms controls transparency


    【解决方案1】:

    查看这篇 CodeProject 文章: How to Use Transparent Images and Labels in Windows Forms

    另外,您可以随时使用 GDI (System.Drawing) 并将您想要的内容直接绘制到透明面板上吗?

    【讨论】:

    • 在 Winforms 中,如果您想要真正的透明度,GDI+ 是您的最佳选择。
    • 我实现了链接帖子中描述的解决方案,但我遇到了一个问题:当我拖动我的表单时,它在先前位置捕获的背景被拖动到新位置...
    【解决方案2】:

    将面板设置为透明。它不应该对面板造成任何问题,因为它后面仍然有表单本身。

    还有一个问题需要提醒您。 winforms 控件中的透明度只是模拟或伪造的,因为当您创建控件时,它会获取控件后面的表单图像并将其用作背景,而不是真正使其透明。如果背景发生变化或控件在表单上移动,这可能会导致问题。

    【讨论】:

    • 好吧..我认为我真的需要让它变得透明。由于您提出的解决方案没有帮助 - 我现在在后台看到表单。我需要查看显示在我的控件后面的 gridview 中的数据.. 它肯定会发生变化并且不是静态的..
    猜你喜欢
    • 2014-06-19
    • 1970-01-01
    • 2014-05-06
    • 1970-01-01
    • 1970-01-01
    • 2011-01-25
    • 2011-03-08
    • 1970-01-01
    • 2015-01-22
    相关资源
    最近更新 更多