我需要在WPF图像上显示许多标记。标记可以是直线,圆形,正方形等,可以有数百个。
图像源和标记数据每隔几秒更新一次。标记与图像上的特定像素相关联,并且它们的大小应该是相对于屏幕的绝对值(即,当我移动图像时,标记应该随之移动,但是如果我放大,它们应该占据相同的空间。屏幕和以前一样)。
目前,我已使用AdornerLayer
实现了此功能。这个解决方案有几个问题,但最重要的一个问题是即使对于120个这样的标记,UI在负载下也不会很好。
我想问一下实现这个的最佳方法是什么?我想到了两个解决方案:
继承自Canvas
,并确保其无效
添加标记,但一次添加一系列标记
创建一个包含图片的控件并更改其OnDraw
以绘制所有标记
我会很感激某些有类似问题经验的人的指点。
答案 0 :(得分:0)
您的用例看起来非常专业,因此需要专门的解决方案。我会尝试使用您的第二个选项的变体 - 扩展Image
,覆盖其OnRender
方法。