我正在设计 CellValuePresenter(来自 Infragistics)以赋予 Gid Lines 不同的外观,并定义了一个样式(gridLineStyle)并应用于 Grid 的 CellValuePresenterStyle 属性。
我发现有些列的自定义模板是通过模板化 CellValuePrenter 定义的,并且网格线不可见(如预期的那样)。我可以通过应用 BasedOn 属性使其工作,如
<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}"
...
但是有很多带有自定义模板的样式,只是想知道我是否可以在不使用 BasedOn 属性但继承默认样式的情况下定义样式