2011-03-15 125 views
9

我聽說UI設計與堆棧面板是更促進網格。那裏是否有任何事實存在?我通常使用網格來設計我的用戶界面,最近在一篇文檔中,我讀到了網格需要更多時間進行渲染而不是堆疊面板;所以我對此非常困惑..請給我更多關於這方面的信息..(WP7開發)堆棧面板或網格哪一個是最可取的

回答

15

Grid,元素可以相對於彼此相對定位,一般自由移動(如果開發者想這樣做)。除非明確指定,否則Grid不執行特定定位。在一個StackPanel控件顯然是堆疊的。因此,如果在Grid中,您將在一個序列中添加兩個控件,這些控件將重疊。在StackPanel中,控件將會一個接一個放置,無論水平還是垂直。

通常,在GridStackPanel之間選擇時沒有性能開銷。 Grid控件的好處是可以顯式定義行和列,最終可以創建更復雜的佈局。每個人都有自己的位置,並且通常不可互換。

+0

這兩者之間存在性能差異,這是:http://stackoverflow.com/a/9996707/302677詳細解釋。 – Furmek 2017-03-16 00:43:59

3

Grid和Stackpanel各有其位置取決於您的UI要求。聽起來你正在過早地優化。

我會實現最適合需要的面板,然後擔心後面的性能問題。

1

從最近的經驗來看,listbox是最好的容器類。主要優勢在於速度,因爲它在內部使用虛擬化堆疊面板。

我嘗試了一個網格和一個堆棧面板,並且都花了25秒鐘來顯示60個用戶控件。在我切換到列表框後,這下降到了10秒。

如果您需要額外定位,請在每個列表項目模板中使用網格。

+0

對於絕大多數簡單應用來說,這絕對是一種矯枉過正,它不需要單個網格中的60多個控件。 – 2011-03-15 07:41:56

+0

取決於您前往的位置。對於快速和骯髒的應用程序,我同意。爲了構建一個框架供很多應用程序使用,我不同意。一旦你發現了一些可以發揮作用和擴展的東西,就可以在這種技術的基礎上進行分紅。今天擁有5個控件並且表現良好的東西可能在數年內有15個控件。常見的頁面結構也會導致有用的實用程序類和幫助程序。 – 2011-03-15 08:42:24

2

只想評論SteveChadbourne,但不知道該怎麼做。

請參閱http://www.codeproject.com/KB/showcase/WP7-Performance.aspx(MonthCalendar),其中包含大約2秒內加載126個元素的網格示例。如果你說你的60控件在25秒內加載,那麼它不是容器使用的問題,而是你的控件的問題。

在這種情況下,UI虛擬化當然有幫助。但總的來說,Grid和StackPanel之間應該沒有重要的區別。網格應該慢一點,但差別不會是可測量的。

還有更重要的事情要優化 - 模板,綁定等。上面提到的文章描述了優化步驟,隨後導致快5倍的MonthCalendar控制。程序員會驚訝於先進的Silverlight工具效率低下。

1

網格可以選擇指定行或列索引,以便可以相應地排序元素。所以如果您需要對頁面元素進行更多自定義,請使用grid.Otherwise堆棧面板就足夠了.Grid具有行定義和列因此它具有比堆棧面板更多的對象。對於我的測試,我沒有看到任何可以對最終用戶可見的性能差異