時,這裏是我的問題代碼:延遲UI更新添加項目的StackPanel
private void button1_Click(object sender, RoutedEventArgs e)
{
Rectangle1.Fill = color;
for (int i = 0; i < 1000; i++)
{
StackPanel1.Children.Add(new TextBlock() { Text = "TestBlock" });
}
}
當然這需要一些時間的TextBlocks添加到StackPanel中。但由於某種原因,矩形的佈局與StackPanel同時更新。我試圖通過強制矩形更新與
Rectangle1.UpdateLayout();
TextBlocks添加到StackPanel之前解決此問題。但是這也行不通。那麼如何在開始向StackPanel添加項目之前更改矩形的顏色?
我沒有線索。
我無法爲我的按鈕找到'PreviewMouseDown'事件。也沒有'Rectangle1.InvalidateVisual'。我究竟做錯了什麼? :( – Stacksatty 2012-07-05 13:41:54
看到我的更新對不起,這是Windows手機:) – MBen 2012-07-05 13:45:26
謝謝!是的,我注意到了。 ;) 當我使用'MouseLeftButtonDown'事件時,它不會改變顏色,但它適用於'GotFocus'事件。實際上,我想在用戶點擊按鈕(GotFocus)後立即執行這兩個操作,這在我的問題中沒有提及。所以我需要兩個單獨的'GotFocus'事件來填充矩形,另一方面執行其他操作。對困惑感到抱歉! – Stacksatty 2012-07-05 14:01:19