2011-03-24 18 views
0

我做了一個簡單的圖表,將堆疊面板放在畫布上,然後根據給出的數據填充堆疊面板。不過,我對錶演並不滿意。動態添加文字到畫布的最快方法

如果我改變與列表框的堆棧面板,而不是標籤添加字符串,它會更快呈現數據?我需要顯示的數據是大量字符串列表中的一個子集。當我移動索引時,我必須清除所有的列表框並填入新的數據。 或者有更快的方法來做到這一點?

我所有的字符串都是4個字符。是否有可能改變方向垂直,使每個列表框中顯示了這樣的事情

一個

一個

一個

一個

B

Ç

Ç

Ç

Ç

d

d

d

D

etc ... 字符串是AAAA,BBBB,CCCC,DDDD。

+0

您是在屏幕上顯示所有的字符,還是在屏幕上滾動? – 2011-03-24 13:10:47

回答

1

你可能要牢記只是幾件事情:

  1. 列表框有很多比單獨StackPanels更重,列表框通常包含一個StackPanel自己。
  2. 如果需要選擇,則使用ListBoxes,如果不是,則使用ItemsControl,但ItemsControls是複合控件,因此比單獨使用容器更加容易。
  3. 如果你只想要文本,然後使用比標籤更輕量級的TextBlock。 (TextBlock vs. Label
  4. How to create vertical text
1

我想你想ItemsControl,不ListBox(無需項選擇)。

問題是開銷是否值得您購買。 ItemsControlStackPanel更重(正如H.B.所述,它通常包含StackPanel)。使用ItemsControl的原因將是UI虛擬化。如果很多項目在屏幕上滾動,ItemsControl通常(並非總是取決於控制模板)僅爲屏幕上的圖像生成視覺效果。這節省了大量的處理時間。

如果你想原始速度,創造DrawingVisual,呼籲RenderOpen()這個視覺,使用DrawingContext繪製的項目,然後顯示DrawingVisualCanvas內。