【问题标题】:How can I create a transparent System.Windows.Forms.Panel on top of two other already existing Panels then draw a line on my transparent panel?如何在其他两个已经存在的面板之上创建一个透明的 System.Windows.Forms.Panel,然后在我的透明面板上画一条线?
【发布时间】:2011-06-25 19:43:48
【问题描述】:

我正在用 C# 编写一个表单,并且有几个面板。我需要在两个面板之间画一条线。我在网上找到了几种解决方法,最有希望的似乎是创建第三个面板,使其透明,将其放在我原来的面板上并在此处画线。

我无法让面板透明,即使我将其 BackColor 和 ForeColor 属性设置为透明(在代码或 VS 的设计视图中)。

关于如何使面板本身透明(或不可见)但让我在其上绘制的线条在其他所有内容之上仍然可见的任何想法?

提前致谢。

【问题讨论】:

    标签: c# .net forms drawing panel


    【解决方案1】:

    不,它是透明的。通过给表单的 BackgroundImage 一个值来查看这一点。您将通过透明面板看到它。当然,这不是您想要的那种透明度,您希望堆叠效果起作用。没有直接的支持。

    如果您希望图层正常工作,请不要使用控件。使用 Paint 事件进行绘制。现在没有问题了,如果你想要透明度,那就不要画了。只需先绘制图像即可在图像上画一条线。这也是WPF的渲染模型。

    【讨论】:

    • 有没有办法画一条从一个面板到另一个面板的线?除了在各自面板的边缘绘制 2 条单独的线。
    • 不,您必须远离控件。绘制类似于面板的东西并不难,Graphics.DrawRectangle()。
    • Blerg。不幸的是,可能会被他们困住。我会试着想想我可以做的其他事情来代替这条线。谢谢你的帮助,我学到了一些东西!
    【解决方案2】:

    实际上,您可以使用自己的 UserControl 轻松做到这一点。这是一个代码示例:

    Drawing on top of controls inside a panel (C# WinForms)

    这与您最初尝试做的类似,只是此代码不是在透明面板上绘制一条线,而是创建一个不规则形状的用户控件(恰好是不规则形状的线条) .

    【讨论】:

      猜你喜欢
      • 2011-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多