WPF - 重新创建并经常绘制非常大的位图时性能降低

时间:2017-07-28 11:11:35

标签: wpf bitmap mousemove drawingcontext

在我的应用程序中,每当用户移动鼠标时,我都必须重新创建一个具有非常高分辨率的新位图(它可能达到最大尺寸的3000像素x 3000像素)。 位图的大小取决于鼠标的位置。例如:当鼠标位于屏幕的左上角时,大小最小;当鼠标位于右下角时,大小最大。

enter image description here

问题是当鼠标离左上角很远时,位图的大小非常大。我检查并意识到通过 OnRender 中的 DrawingContext 重新创建和绘制位图的时间很好。但是,框架中可能存在瓶颈,将DrawingContext中的绘图数据传输到屏幕需要很长时间。这会影响WPF鼠标输入系统,因此下一次鼠标移动事件很晚才开始,我的应用程序变得迟钝。 以下是此网站上与我的问题相关的另一个问题: The reason behind slow performance in WPF

你有什么想法解决我的问题吗?

PS:每当用户移动鼠标时,我会创建一个新的位图并在其上绘制一些内容,然后调用InvalidateVisual()并将位图绘制到DrawingContext中。

0 个答案:

没有答案