0

我正在设计 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 属性但继承默认样式的情况下定义样式

4

1 回答 1

2

您可以在 DefaultStyles\DataPresenter\DataPresenterGeneric_Express.xaml 下的 infragistics 安装文件夹中找到完整的 CellValuePresenter 样式定义。您可以将该样式复制到 Application.Resources 下的 App.xaml 中,根据需要进行修改,这应该成为新的默认样式单元值演示者。

于 2013-04-22T19:59:57.427 回答