我正在设计CellValuePresenter(来自Infragistics)以给予Gid Lines不同的外观并定义了样式(gridLineStyle)并应用于网格的CellValuePresenterStyle属性。如何在不使用BasedOn属性的情况下基于另一种样式的顶部应用WPF样式
我发现有自定义模板通过模板CellValuePrenter定义的列,并且网格线不可见(如预期的那样)。我可以把它应用支持算法FMP财产在
<Style x:Key="gridLineStyle" TargetType="ig:CellValuePresenter">
<Setter Property="BorderThickness" Value="0,0,1,1"/>
<Setter Property="BorderBrush" Value="{Binding Path=BorderBrushForAllCells,RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type pwc:CarbonBlotter}}}"/>
</Style>
<Style x:Key="anotherColumnStyle" TargetType="{x:Type ig:CellValuePresenter}" BasedOn="{StaticResource gridLineStyle}">
<Setter Property="Template">
....
<pwc:BaseXamDataGrid>
<pwc:BaseXamDataGrid.FieldSettings>
<ig:FieldSettings CellValuePresenterStyle="{StaticResource gridLineStyle}"
...
工作,但也有很多款式定制模板,只是想知道我是否能定义一个样式,而无需使用支持算法FMP财产,但继承默认样式
很可能您不能重新创建整个样式定义而忽略BasedOn,并且可能需要执行大量工作。 你可以做的是你可以跳过x:Key属性,这个样式将成为其默认范围 – 2013-04-22 19:47:10
@StenPetrov中的所有'ig:CellValuePresenter'如果我从gridLinesStyles中删除x:key,它将成为所有默认值CellValuePresenters除了那些模板化(如anotherColumnStyle),不会有默认样式继承的不是它。这正是我想要解决的问题。 – skjagini 2013-04-22 19:56:04
正确。如果您在某处使用了Style属性,那么默认样式不会是这个样式。 – 2013-04-22 19:58:00