我正在设置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属性的情况下定义样式并继承默认样式
答案 0 :(得分:2)
您可以在DefaultStyles \ DataPresenter \ DataPresenterGeneric_Express.xaml下的infragistics安装文件夹中找到完整的CellValuePresenter样式定义 您可以将该样式复制到Application.Resources下的App.xaml中,根据需要进行修改,这应该成为CellValuePresenter的新默认样式。