这里我想给网格行添加白色和灰色的替代颜色。我做了很多尝试,但我不能做网格样式。代码在这里
<Style TargetType="{x:Type wpftoolkit:DataGrid}">
<Setter Property="Margin" Value="0" />
<Setter Property="BorderBrush" Value="#A6A6A6" />
<Setter Property="BorderThickness" Value="0,1,0,0"/>
<Setter Property="Background" Value="{StaticResource GridBgBrush}" />
<Setter Property="RowBackground" Value="White" />
<Setter Property="AlternatingRowBackground" Value="#FFF3F6FA" />
<Setter Property="GridLinesVisibility" Value="Horizontal" />
<Setter Property="HorizontalGridLinesBrush" Value="Transparent" />
<Setter Property="RowHeaderWidth" Value="0" />
</Style>
这里StaticResource GridBgBrush在此文件的前面定义为`
请提供适当的解决方案。谢谢。
答案 0 :(得分:0)
确保您的样式在XAML文件的资源部分中定义(在GridBgBrush之后,以便它可以引用它),或者在应用程序的某个ResourceDictionary中定义,以便可以从任何地方访问它。没有看到更多,我无法告诉你问题的来源。这是定义你的风格的正确方法,如果你有兴趣看到它,我有几个例子可以正常工作。
如果您不知道,另外需要注意的是DataGrid(以及DatePicker)是否已引入WPF v4.0。如果您可以定位该版本,这使得WPF工具包(至少出于DataGrid的目的)是不必要的。在说完之后,我想如果你不知道你使用的是另一个造型,那么你的风格就不会有效了。
<XmlDataProvider x:Key="myData" Source="Data.xml" IsAsynchronous="True" />
<Style TargetType="{x:Type DataGrid}" x:Key="myStyle">
<Setter Property="AlternatingRowBackground" Value="Red"/>
</Style>
<Grid>
<DataGrid ItemsSource="{Binding Source={StaticResource myData}, XPath=persons/person}" AutoGenerateColumns="False" Style="{StaticResource myStyle}">
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding XPath=firstname}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding XPath=lastname}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
答案 1 :(得分:0)
您还需要设置AlternationCount属性。