2009-11-10 50 views
0

如何在不阻止用戶界面的情況下將控件添加到Silverlight網格控件。 我正在創建一個複雜的圖表控件,當我打電話myGrid.Children.Add(myChart)時,整個頁面被阻止並且沒有響應。 任何想法的傢伙?添加Silverlight控件而不會阻止用戶界面

回答

0

您是否測試過這是否是XAML呈現問題或實例化導致阻塞的圖表控件?

當您將圖表的可見性設置爲摺疊並將其添加到網格時會發生什麼?很明顯,你不會在UI上看到它,所以你需要通過調試來完成它,或者只需在調用Add(myChart)之前和之後彈出一個MessageBox。

如果是圖表的XAML渲染,我會深入探討圖表控件的XAML並尋找優化(如果可以,圖表控件是什麼?)。

+0

其實一個試圖設置可見性崩潰,並沒有問題,直到我設置圖表控件再次可見。我想是圖表渲染,然後花費很多時間。雖然時間不是問題,但直到圖表出現時纔會阻塞UI ... – Elz 2009-11-10 14:06:48

+0

如果這是渲染問題,您可能會被卡住。 UI是它自己的線程。這是什麼圖表控制? Telerik的? Silverlight工具包? – 2009-11-10 14:44:36

2

有幾件事情,你可以嘗試:

  1. 包裝你調用圖表添加Dispatcher.BeginInvoke內([添加圖表])。這將導致圖表不會被添加,直到當前一輪的UI工作完成,並且可能會幫助它更快地響應。
  2. 將沒有任何數據的圖表添加到UI。然後在後臺加載數據並使用綁定將數據呈現在圖表中。
  3. 試圖弄清楚如何分解複雜的圖表。所以,也許你可以先添加圖表,然後添加一些其他項目。
  4. 確保您在添加圖表之前已經加載了圖表的數據。我假設你已經這樣做了,但只是想仔細檢查一下。

這些是我唯一的想法。

相關問題