2011-06-06 31 views
0

我以前曾使用DefaultStyleKey設置來設置我的DataGrid的風格,但現在我要擴展一個風格與他人的支持算法FMP屬性支持算法FMP財產。所以現在我有兩個相同類型的樣式,而且我必須比簡單地設置DefaultStyleKey更具體。自定義控件的Silverlight樣式。使用

不幸的是,我似乎無法訪問generic.xaml文件,以獲得在該樣式的我創建。

必須有,當你不希望使用DefaultStyleKey,並需要從代碼

回答

0

您正在尋找這樣的事情訪問您的樣式解決方法:

public override void OnApplyTemplate() 
{ 
base.OnApplyTemplate(); 
ResourceDictionary rd = new ResourceDictionary(); 
rd.Source = new Uri("/CustomControl;component/Themes/generic.xaml", UriKind.RelativeOrAbsolute); 
Style style = rd["StyleKey"] as Style; 
} 

「CustomControl '是您項目的名稱,StyleKey是您想要訪問的樣式的關鍵字。

0

那麼,爲什麼不能您擴展數據網格,以及創建一個新的類,並使用默認樣式鍵作爲新類型和在generic.xaml您可以創建基於你以前的風格一種新的風格。

但siverlight,我們創建一個基本樣式爲命名的風格,我們從它繼承樣式。

<style x:Key="BaseDataGrid" 

<style TargetType="MyGrid1" 
     BasedOn="BaseDataGrid" 

<style TargetType="MyGrid2" 
     BasedOn="BaseDataGrid" 
+0

是的,這是一個解決方案,但我想避免完全重新創建數據網格的樣式,當我需要的只是調整現有的一個參數。 – blomster 2011-06-08 08:04:35

相關問題