在WPF图像上高效显示多个标记

时间:2013-02-02 15:55:29

标签: wpf image drawing adorner

我需要在WPF图像上显示许多标记。标记可以是直线,圆形,正方形等,可以有数百个。

图像源和标记数据每隔几秒更新一次。标记与图像上的特定像素相关联,并且它们的大小应该是相对于屏幕的绝对值(即,当我移动图像时,标记应该随之移动,但是如果我放大,它们应该占据相同的空间。屏幕和以前一样)。

目前,我已使用AdornerLayer实现了此功能。这个解决方案有几个问题,但最重要的一个问题是即使对于120个这样的标记,UI在负载下也不会很好。

我想问一下实现这个的最佳方法是什么?我想到了两个解决方案:

  • 继承自Canvas,并确保其无效 添加标记,但一次添加一系列标记

  • 创建一个包含图片的控件并更改其OnDraw以绘制所有标记

我会很感激某些有类似问题经验的人的指点。

1 个答案:

答案 0 :(得分:0)

您的用例看起来非常专业,因此需要专门的解决方案。我会尝试使用您的第二个选项的变体 - 扩展Image,覆盖其OnRender方法。