我正在設計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