我正在使用带有Office2007BlackTheme的xceed数据网格。我也有很多样式,我想应用于我的数据网格中的UI控件。不幸的是,主题似乎覆盖了所有内容,只要它在数据网格内部。
值得注意的是,与“ColumnManagerCell”或“DataRow”等数据网格相关的样式仍然可以按预期工作。
例如:我想将自己的样式用于滚动条,但即使样式设置为全局应用; <Style TargetType="{x:Type ScrollBar}">
,它仍在数据网格中被覆盖。在网格之外它不是。
我意识到这是因为,默认情况下,主题是隐式设置的,但似乎无论如何都没有明确地设置它。
有没有办法在应用主题后显式设置ScrollBar样式(&amp; others)?也许有一种方法可以将tableflowview基于主题,这样它就不会覆盖其他样式?我环顾四周,没有找到任何解决方案。
我正在使用带有ThemePack 1-5的XFed DataGrid for WPF 6.3。 (仅限DataGrid:xceed.com/xceed-datagrid-for-wpf付费版本)
感谢任何帮助。
这是我的DataGrid代码:
<xcdg:DataGridControl x:Name="datagrid"
ItemsSource="{Binding Source={StaticResource Features}}"
KeyUp="DatagridKeyUp"
AllowDetailToggle="True"
Margin="10"
NavigationBehavior="RowOrCell"
CellEditorDisplayConditions="RowIsBeingEdited,
MouseOverCell, MouseOverRow, RowIsCurrent, CellIsCurrent"
EditTriggers="BeginEditCommand, ClickOnCurrentCell,
SingleClick, CellIsCurrent, ActivationGesture, RowIsCurrent"
ItemScrollingBehavior="Immediate"
AutoCreateColumns="False">
<xcdg:DataGridControl.View>
<xcdg:TableflowView>
<!--Remove ugly header-->
<xcdg:TableflowView.FixedHeaders>
<DataTemplate>
<xcdg:ColumnManagerRow />
</DataTemplate>
</xcdg:TableflowView.FixedHeaders>
<!-- THEME IS SET HERE! -->
<xcdg:TableflowView.Theme>
<xcdg:Office2007BlackTheme/>
</xcdg:TableflowView.Theme>
</xcdg:TableflowView>
</xcdg:DataGridControl.View>
<xcdg:DataGridControl.Resources>
<Style TargetType="xcdg:TableViewScrollViewer">
<Setter Property="HorizontalScrollBarVisibility" Value="Auto" />
<Setter Property="VerticalScrollBarVisibility" Value="Auto" />
</Style>
</xcdg:DataGridControl.Resources>
<xcdg:DataGridControl.Columns>
<xcdg:Column FieldName="FeatureID" Title="FeatureID" ReadOnly="True"/>
<xcdg:Column FieldName="Name" Title="Feature name" ReadOnly="True" />
<xcdg:Column FieldName="Description" Title="Description" ReadOnly="True" />
<xcdg:UnboundColumn FieldName=" " />
</xcdg:DataGridControl.Columns>
<xcdg:DataGridControl.DetailConfigurations>
<xcdg:DetailConfiguration RelationName="Settings" UseDefaultHeadersFooters="False">
<xcdg:DetailConfiguration.Headers>
<DataTemplate>
<xcdg:ColumnManagerRow />
</DataTemplate>
</xcdg:DetailConfiguration.Headers>
<xcdg:DetailConfiguration.Columns>
<xcdg:Column FieldName="Name" Title="Name" ReadOnly="True" />
<xcdg:Column FieldName="Description" Title="Description" ReadOnly="True" />
<xcdg:Column FieldName="EditValues" Title="Edit Values" ReadOnly="True" />
<xcdg:Column FieldName="EditValueVar" Title="Edit Value" Width="150" ReadOnly="False"
CellContentTemplateSelector="{StaticResource SettingsDataTemplateSelector}"
DisplayMemberBinding="{Binding}" />
<xcdg:UnboundColumn FieldName=" " />
</xcdg:DetailConfiguration.Columns>
</xcdg:DetailConfiguration>
</xcdg:DataGridControl.DetailConfigurations>
</xcdg:DataGridControl>