2012-11-02 61 views
0

我有很多UserControls放在我的頁面上。他們都在網格行和列。還有幾個包含UserControls的嵌套網格。 但是現在我需要爲這些UserControl提供Snapped VisualState,但是佈局完全不同。winrt xaml PageLayout VisualState

很容易爲UserControls選擇內部樣式,但是我不清楚如何將具有2行的Grid.RowDefinitions更改爲帶有3行的Grid.RowDefinitions,更改每個Grid.Row屬性的內部UserControls和甚至更多地將一些兒童元素從一個網格替換爲另一個網格。

是否可以爲網格元素製作一些模板?

+0

使DataTemplate的網格部分更好嗎?然後,您將根據所選佈局更改DataTemplate。 – Rhyous

+0

是的,你是完全寫,但我沒有寫一些細節,我使用metroprism(http://metroprism.codeplex.com/),我需要設置區域與我的意見命名的內容控件(區域可以設置爲一次控制)。我不想處理代碼中的VisualState更改,以便將某些區域導航到快照數據模板中的另一個控件。但是現在我看到,在這種情況下可能需要這樣做。 –

回答

1

經過一些嘗試動態佈局和restyle控制取決於視圖狀態的鬥爭後,我決定使用模板方法,並簡單地爲不同的...意見分別視圖。基本上每個視圖都有獨立的邏輯樹,並根據視圖狀態切換這些視圖的可見性。

+0

謝謝,這是有用的,因爲我不知道。但正如我所看到的做棱鏡及其區域,我不得不在VisualState更改時將所有區域的代碼重新導航到活動的Visible DataTemplate。但我想在沒有代碼處理的情況下在xaml中完成所有操作。如果你能提供一些建議,那就太好了)。但相應的問題我問你的ansewer是寫。謝謝。 –

+0

我沒有使用棱鏡區域,但我認爲特定區域的可見性不應該在屏幕視圖狀態更改時更新,因爲您會在視圖中全局處理該區域。除非有兩個區域與相同的視圖模型相關聯是一個問題。我不太確定 - 我會簡單地使用MVVM Light,並避免擔心區域。 :) –