2011-06-06 59 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

相关问题