У меня есть большой холст со множеством объектов, который можно прокручивать (и поэтому он такой большой).У меня есть объекты, которые я помещаю на экран, по которым можно щелкать и перетаскивать объекты (например, текстовое поле).Объект просто захватывает мышь и вызывает Canvas.SetLeft () и SetTop () в качестве события OnMouseMoved.
Это прекрасно работает с небольшими полотнами, но этот действительно большой, с несколькими тысячами объектов, очень медленно обновляет перетаскиваемый объект ... обычно с обновлением в течение секунды при его перетаскивании.не очень удобный для пользователя.
Мне нужно улучшить эту покупку, я не уверен, как прогрессировать.
Одна мысль, которая у меня была, - держать прозрачный холст на переднем плане, который имеет только текущий размер окна и не содержит дочерних элементов.Когда вы начнете перетаскивать, переместите его на этот слой, пока не закончите, и верните его к большому.Хотя много усилий для еще одного взлома ...
Обновление: используя перфоратор, я вижу, что холст получает многократный проход макета, пока я перетаскиваю этот объект, и это медленная часть.Хотите знать, есть ли способ избежать этого ...