0

我必须在 WPF 用户控件或常规 WPF 控件(如图像/画布)上绘制多条线。线条的位置和大小保持不变,但颜色会随着时间而变化。

  • 约2000行
  • 以后无需引用它们或与它们交互,因为它可以使用形状
  • 在颜色更新时,所有线条都将再次绘制(这就是我在 WinForms 中所做的)。
  • 更新仅在用户操作时发生,所以就像每隔几秒到几天没有变化
  • 更新应该很快,不会对程序性能产生太大影响

使用来自 FrameworkElement 的派生,对于这样一个简单的任务恕我直言,必须覆盖两个属性的开销太大了。

我想用尽可能少的代码来完成它,最好的性能是它只能在屏幕上看到,没有事件或任何交互。

在 WinForms 中这很简单:您将一个图形对象实例化并在其上绘图。在那里,我在位图上画线并将位图分配给 WinForms-Image。我什至可以通过更改图像的大小来缩放线条。

我了解直接绘图 (WinForms) 和保留绘图 (WPF) 之间存在差异。可以尽可能多地保留它,应该有一个简单的解决方案来创建一堆行并将它们分配给用户控件或常规 WPF 控件!?

谢谢你的帮助。

朱利安

4

1 回答 1

0

听起来您需要以与 WinForms 中相同的方式使用 OnRender 和 DrawingContext,例如

protected override void OnRender(DrawingContext drawingContext)
{
    base.OnRender(drawingContext);

    Pen pen = new Pen(Brushes.Blue, 1);

    foreach(...)
    {
        drawingContext.DrawLine(pen, p1, p2);
    }
}
于 2012-06-11T17:01:38.433 回答