1

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

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

目前,我已经使用AdornerLayer. 这个解决方案有几个问题,但最重要的一个是即使对于 120 个这样的标记,UI 在负载下也表现不佳。

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

  • 继承Canvas并确保它不是对每个添加的标记都无效,而是对一系列标记同时无效

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

我将不胜感激有类似问题经验的人的一些指示。

4

1 回答 1

0

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

于 2013-02-02T16:06:28.463 回答