2010-06-09 116 views
1

我在帶有水印背景的Silverlight 4中創建UserControl。是否可以動態更改控件的樣式/模板?

水印應該根據UserControl所代表的底層「類型」而改變。

水印是使用Path創建的,我已將所有屬性提取到樣式中。

我想知道是否可以根據某些已知值在運行時更改路徑的樣式。

我正在使用MVVM和Unity。也許我可以以某種方式來約束風格?或者我可以在視圖創建時注入樣式嗎?

我可能需要使用控件模板來做到這一點,因此可以在標題中進行參考。而不是使用控件模板更改水印,你爲什麼不使用VisualStateManager基於「類型」更改水印的狀態的風格

謝謝...

回答

0

+0

我最初的想法是將所有的水印都呈現出來,並將綁定到DataContext的Type屬性的DataTrigger與一系列ChangePropertyActions結合起來,根據類型切換各種水印的可見性。 不幸的是,這似乎並沒有工作。可能是因爲包含類型的模型被傳遞給ViewModel的構造函數,所以OnPropertyChanged永遠不會被觸發,因此DataTrigger也不會被觸發。 – 2010-06-09 13:33:26

+0

我的第二個想法是將水印的Visibility屬性綁定到Type屬性,並使用轉換器,傳入適當的參數以確定Visibility屬性位於哪個水印上,以檢查Type是否匹配參數,然後返回適當的能見度。 我看不出爲什麼這不應該起作用,但我的老闆並不熱衷。 – 2010-06-09 13:36:06

+0

我最終追求我的老闆去與轉換器選項。 – 2010-06-10 13:10:15

相關問題