我必须在WPF用户控件或常规WPF控件(如Image / Canvas)上绘制许多行。 线条的位置和大小保持不变,但颜色随时间而变化。
使用FrameworkElement的派生,必须覆盖两个属性,这对于这样一个简单的任务来说是如此多的开销恕我直言。
我想用尽可能少的代码完成它,并且最好的表现只能在屏幕上看到它,没有事件或任何交互。
在WinForms中,它非常简单:您可以实例化图形对象并绘制到它上面。在那里,我在位图上绘制了线条,并将位图分配给WinForms-Image。我甚至可以通过改变图像的大小来缩放线条。
据我所知,直接绘图(WinForms)和保留绘图(WPF)之间存在差异。可以保留它想要的,应该有一个简单的解决方案来创建一堆行并将它们分配给用户控件或常规WPF控件!?
感谢您的帮助。
儒略
答案 0 :(得分:0)
听起来你需要使用OnRender和DrawingContext,就像在WinForms中一样,例如。
protected override void OnRender(DrawingContext drawingContext)
{
base.OnRender(drawingContext);
Pen pen = new Pen(Brushes.Blue, 1);
foreach(...)
{
drawingContext.DrawLine(pen, p1, p2);
}
}