Как установить стиль для WPFToolkit DataGrid? - PullRequest
1 голос
/ 07 сентября 2011

Я новичок в WPF, разрабатываю с использованием C # и .NET3.5.У меня есть DataGrid WPFToolkit, добавленный в мое окно.Я не могу понять, как установить стиль для заголовка и строки столбца?Строки добавляются динамически.

        <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>

В TargetType of Style я не могу установить значение my:DataGridColumnHeader или просто DataGridColumnHeader.Там написано "... не найдено".В my:DataGridTextColumn я думаю, HeaderStyle - это свойство для установки стиля.Но я могу определить стиль для того же.

Также, как установить стиль для строк, добавляемых динамически?Куда я иду не так?Любая помощь высоко ценится.

Ответы [ 3 ]

2 голосов
/ 07 сентября 2011

вы можете сделать так:

Сначала это пространство имен для заголовка:

xmlns:Custom="http://schemas.microsoft.com/wpf/2008/toolkit"

, тогда это стиль:

<Style x:Key="DataGridColumnHeaderStyle" TargetType="{x:Type Custom:DataGridColumnHeader}">
        <Setter Property="HorizontalAlignment" Value="Center"></Setter>
        <Setter Property="Foreground" Value="#654b24"></Setter>
        <Setter Property="FontWeight" Value="bold"></Setter>
        <Setter Property="Height" Value="30"></Setter>
        <Setter Property="Background">
            <Setter.Value>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#f7f3de" Offset="0.1"/>
                    <GradientStop Color="#Fcfcfc" Offset="1"/>
                </LinearGradientBrush>
            </Setter.Value>
        </Setter>
    </Style>
2 голосов
/ 07 сентября 2011

Вы можете следовать этим учебникам , всего их четыре, и они охватывают большинство аспектов стиля DataGrid.

Связанная статья является второй в серии и охватывает большую частьосновы.

1 голос
/ 07 сентября 2011

Вероятная причина, по которой вы не видите my:DataGridColumnHeader, заключается в том, что она находится в пространстве имен System.Windows.Controls.Primitives.my также представляет это пространство имен?

Использовать

 xmlns:Primitives="clr-namespace:Microsoft.Windows.Controls.Primitives;assembly=WPFToolkit"

.

РЕДАКТИРОВАТЬ

Затем обратитесьDataGridColumnHeader as

 <Style TargetType="{x:Type Primitives:DataGridColumnHeader}">
     ....
 </Style>

Не забудьте НЕ давать ему какой-либо ключ, чтобы он применялся ко всем заголовкам.

...