我想創建任何排序算法的視覺表示,其中數據表示在一個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對象,但都沒有工作。