【问题标题】:How should i draw text and shapes in wpf and C#?我应该如何在 wpf 和 C# 中绘制文本和形状?
【发布时间】:2010-06-11 23:03:35
【问题描述】:

我想做基本的 WPF 图形,即矩形、线条、圆形和文本。

什么时候应该使用绘图,什么时候应该使用 DrawingVisual?

我有一些使用绘图的代码,我将它们渲染到 DrawingImage 并在图像控件中显示。这是正确的方法吗?我看不到如何将文本添加到绘图中。我也很难定位它。我应该渲染到画布上吗?

我有一些使用 DrawingVisual 并写入 DrawingContext 的代码。这就像 WinForms。这是推荐的方式吗?

对于将哪些 API 用于基本图形和标签,您有什么高级建议吗?他们的选项是否适用于 Silver Light 和桌面?

【问题讨论】:

  • 2D 还是 3D 图形? - Silverlight 没有完整的 3D 支持。
  • 二维图形,例如带有线条、文本和形状的散点图或箱线图。

标签: c# wpf


【解决方案1】:

您在评论中提到您实际上是在实现散点图或类似图表。通常在 WPF 中,这是通过模板化现有控件(如列表视图)来创建的。这听起来违反直觉,但这比自己绘制要容易得多,也更强大。

This article by Charles Petzhold 显示了以这种方式实现的散点图,并详细介绍了如何使其对 10,000 多个数据点的性能。

【讨论】:

    【解决方案2】:

    您很可能只想渲染到 Canvas。如果您将“形状”添加到画布,WPF 将为您处理所有绘图。

    详情见Shapes and Basic Drawing in WPF.

    【讨论】:

    • 谢谢,我会试试 Shapes 和 Canvas。我也可以在画布上放置文本吗?应用程序需要绘制大约 1000 个基本形状,例如线条、圆形和矩形以及一些标签。这是一个自定义图形输出。我读到视觉效果对速度有好处,但它们在银光下有效吗?我正在寻找一种方法来渲染图形和文本以及与 winforms 中的绘图相似的位置精度。
    • @peterhu:文本可以很好地解决这个问题 - 在我的 exp (WPF) 中,这对这个数量的项目非常有用。
    猜你喜欢
    • 2017-09-12
    • 2011-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-21
    • 1970-01-01
    • 2020-02-02
    相关资源
    最近更新 更多