我需要在 WPF 图像上显示许多标记。标记可以是线、圆、正方形等,并且可以有数百个。
图像源和标记数据都每隔几秒更新一次。标记与图像上的特定像素相关联,它们的大小相对于屏幕应该是绝对的(即,当我移动图像时,标记应该随之移动,但是如果我放大,它们应该占据与屏幕相同的空间屏幕和以前一样)。
目前,我已经使用AdornerLayer
. 这个解决方案有几个问题,但最重要的一个是即使对于 120 个这样的标记,UI 在负载下也表现不佳。
我想问一下实现这一点的最佳方法是什么?我想到了两个解决方案:
继承
Canvas
并确保它不是对每个添加的标记都无效,而是对一系列标记同时无效创建一个包含图像的控件并更改它
OnDraw
以绘制所有标记
我将不胜感激有类似问题经验的人的一些指示。