WPF - Низкая производительность при частом воссоздании и рисовании очень больших растровых изображений
В моем приложении всякий раз, когда пользователь перемещает мышь, мне приходится заново создавать новое растровое изображение с очень высоким разрешением (оно может достигать 3000 пикселей x 3000 пикселей при самом большом размере). Размер растрового изображения зависит от того, где находится мышь. Например: размер наименьший, когда мышь находится в верхнем левом углу экрана, и наибольший, когда мышь находится в нижнем правом углу.
Проблема в том, что когда мышь находится очень далеко от верхнего левого угла, размер растрового изображения очень велик. Я проверил и понял, что время воссоздания и рисования растрового изображения с помощью DrawingContext в OnRender в порядке. Однако в платформе может быть узкое место, передача данных чертежа в DrawingContext на экран занимает много времени. И это влияет на систему ввода мыши WPF, поэтому следующее событие перемещения мыши запускается очень поздно, и мое приложение отстает. Вот еще один вопрос на этом сайте, связанный с моей проблемой: причина низкой производительности в WPF
У тебя есть идея решить мою проблему?
PS: всякий раз, когда пользователь перемещает мышь, я создаю новое растровое изображение и рисую на нем что-то, затем вызываю InvalidateVisual() и рисую растровое изображение в DrawingContext.