【发布时间】:2011-09-07 11:26:02
【问题描述】:
我是 WPF 新手,正在使用 C# 和 .NET3.5 进行开发。我有一个 WPFToolkit 的 DataGrid 添加到我的窗口中。我无法弄清楚如何将样式设置为列标题和行?行是动态添加的。
<my:datagrid name="myGrid" xmlns:my="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit" itemssource="{Binding }" autogeneratecolumns="False">
SelectionMode="Extended" SelectionUnit="FullRow" CanUserReorderColumns="False"
ColumnHeaderHeight="42" Background="#FFF7F7F7" BorderBrush="Transparent"
HorizontalGridLinesBrush="#FFEAEAEA" VerticalGridLinesBrush="#FFEAEAEA"
HeadersVisibility="Column" RowHeaderWidth="0" HorizontalContentAlignment="Center"
VerticalContentAlignment="Center" ClipboardCopyMode="None" MinRowHeight="28"
Rowremoved="#FFF7F7F7" RowDetailsVisibilityMode="Visible" RowHeight="28"
DataContextChanged="serverGrid_DataContextChanged">
<my:datagrid.columns>
<my:datagridtextcolumn header="Enabled" width="120" binding="{Binding Path=Name}" />
<my:datagridtextcolumn header="Enabled" width="70" binding="{Binding Path=Country}" />
<my:datagridtextcolumn header="Enabled" width="100" binding="{Binding Path=Description}" />
</my:datagrid.columns>
</my:datagrid>
在资源中添加了样式代码:
<!-- DataGridColumnHeader-->
<Style x:Key="ColumnHeaderStyle" TargetType="{x:Type Thumb}">
<setter property="Background" value="#9DCFD0" />
<setter property="FontFamily" value="Arial Rounded MT" />
<setter property="FontSize" value="14" />
<setter property="FontWeight" value="Bold" />
<setter property="Foreground" value="#00545B" />
<setter property="VerticalContentAlignment" value="Center" />
<setter property="HorizontalContentAlignment" value="Center" />
</Style>
在 Style 的 TargetType 中,无法设置为 my:DataGridColumnHeader 或仅设置为 DataGridColumnHeader。它说“......未找到”。在my:DataGridTextColumn 我猜HeaderStyle 是设置样式的属性。但我能够定义相同的样式。
另外如何为动态添加的行设置样式?我哪里错了? 非常感谢任何帮助。
【问题讨论】:
标签: c# wpf xaml wpfdatagrid