【问题标题】:Equivalent of canvas in Windows formsWindows 窗体中画布的等价物
【发布时间】:2013-08-09 16:35:36
【问题描述】:

我正在创建一个简单的应用程序来显示多个图像,一个在另一个之下。 在 WPF 中,我使用了与图像数量相等的画布数量,并将这些画布添加到主画布中。 在每个画布中使用 Image 控件,我将图像上传到我身边,看起来不错。

现在,我正在尝试在 Windows 窗体中做同样的事情。 我尝试使用 Panel(作为 WPF 中的主画布)并使用 Panel_Paint 事件在其上绘制图像。没事。但我需要添加一些东西(因为我在 WPF 中添加了多个画布),但没有得到任何东西。 我计划了几个面板,但它们都需要 Panel_Paint 在上面绘制图像。这有些难以维护……还有其他想法吗?

【问题讨论】:

  • 如果您的 WPF 代码可以很好地转换为 winforms,则很可能您做错了。与 WPF 相比,winforms 的数据绑定功能非常有限。发布您当前的 XAML 和 WPF 版本的代码。

标签: c# wpf winforms canvas panel


【解决方案1】:

如果您想创建一个Paint-like 画布,您可以在其中绘制简单的图形和图像,您可以使用Graphics 的实例,如下所示:

// myPictureBox is the control where your graphics will be drawn
Graphics myCanvas = myPictureBox.CreateGraphics();

如果您想显示一组图像,例如在文件资源管理器中显示.jpg,您可以使用ListView

【讨论】:

    【解决方案2】:

    您可以创建自己的自定义控件并覆盖 OnPaint 方法。在那里,您将能够在类似画布的模式下绘制您喜欢的任何内容。创建元素指定它的坐标,用 Graphics 对象绘制它。并且对于叠加使用线性绘图顺序,稍后绘制的项目将是最上面的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-04
      • 2014-01-03
      • 2014-08-24
      • 1970-01-01
      • 2010-09-24
      • 2021-06-22
      • 1970-01-01
      相关资源
      最近更新 更多