데이터가 int [] 배열로 표시되는 정렬 알고리즘의 시각적 표현을 만들려고합니다. 위키에 거품 정렬의 예 :캔버스를 새로 고치는 방법
내 정렬 알고리즘 모두 INT [] 어레이에 두 항목을 교환 할 때 이벤트 ItemsSwapped 올린다.
// Handler for ItemsSwapped event.
private void Render(object sender, ItemsSwapEventArgs e)
{
canvas.Children.Clear();
int numberOfElements = e.Data.Length;
for (int x = 0; x < numberOfElements; x++)
{
RenderValue(x, e.Data[x]);
}
// Here I should somehow refresh canvas.
}
private void RenderValue(int x, int y)
{
var value = new Ellipse
{
Width = 5,
Height = 5,
Stroke = Brushes.Black,
StrokeThickness = 2,
};
Canvas.SetTop(value, x);
Canvas.SetLeft(value, y);
canvas.Children.Add(value);
}
문제는 캔버스 자체를 새로 고침하지 않는, 그냥 시간 후 최종 솔루션을 표시 나는 캔버스에 모든 이벤트 후 데이터를 표시하기 위해 노력하고, 이쪽은 내 코드입니다. 발생한 사건마다 어떻게 새로 고칠 수 있습니까?
편집 - UpdateLayout, InvalidateMeasure 및 Dispatcher 개체로 시도했지만 어느 것도 작동하지 않았습니다.