Я создаю приложение CAD с использованием WPF.И я хочу реализовать цикл рендеринга, подобный следующему
public class Editor
{
private DrawingGroup RenderGroup = new DrawingGroup();
protected override void OnRender(DrawingContext drawingContext)
{
base.OnRender(drawingContext);
var dc = drawingContext;
Render();
dc.DrawDrawing(RenderGroup);
}
void Render()
{
//All Render goes here, for example
for (int i=0; i<25;i++)
{
dc.DrawRenctagle.....
}
}
public Editor()
{
CompositionTarget.Rendering += CompositionTarget_Rendering;
}
void CompositionTarget_Rendering(object sender, EventArgs e)
{
Render();
}
}
У меня нет опыта в цикле wpf, этот способ, кажется, работает для меня сейчас.Но мне любопытно, столкнусь ли я с неприятностями в будущем.Есть ли «лучшая практика» для подобных задач?
ps Альтернативой этому является вызов Render () только тогда, когда это необходимо, например, когда я перемещаю что-то на контроль и существует реальная необходимость перерисовать вещи.Но в будущем я хочу реализовать некоторые функции анимации, и без цикла это будет более сложным