2011-10-21 22 views
0

我需要在我的應用程序中的兩個不同位置顯示類似外觀的對話框,其中一個位置作爲模式對話框,另一個位置嵌入另一個菜單。WPF:可以使用樣式來格式化兩種不同場景的用戶控件嗎?

從我對WPF有限的理解,它看起來像樣式會允許我編寫一個UserControl並自定義它的顏色和字體的兩種情況。然而,這些變化更爲廣泛,一些元素位置(例如TextBox)處於不同的相對位置。

我不確定這是否可以用樣式完成,或者如果有更合適的方式在WPF中執行此操作。最糟糕的情況是,我可以編寫兩個完全不同的UserControl,但這在可維護性方面非常糟糕,所以我想避免它。

回答

0

當然你可以用樣式/模板來做到這一點。如果你使用像MVVM模式(我喜歡MVVM光),這是做的相當簡單

<YourUserControl Style="{StaticResource firstStyle}"/> 
+0

這不是要幫助他。他希望根據UserControl的位置來定製一些設置值,爲此他需要對其樣式進行一些修改。 –

+0

我不認爲我需要將它放在UserControl的位置上,而是我可以按照Dennis的建議爲每個控件的實例設置不同的樣式。但是我很困惑的是如何根據樣式來設置控件的位置。 – Locksleyu

0

:只要給每個風格的關鍵,用鑰匙在正確的地方訪問合適的款式。您將編寫一個ViewModel,它捕獲您想要公開的所有數據和行爲,然後以您希望的方式創建兩個視圖,兩個視圖都使用相同的視圖模型。

這種情況是MVVM模式背後的核心意圖之一。你說得對,寫兩次行爲/管道是「壞事」,但是觀點不同,所以你沒有違反任何重用。

相關問題