Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF数据网格头样式_Wpf_Datagrid - Fatal编程技术网

WPF数据网格头样式

WPF数据网格头样式,wpf,datagrid,Wpf,Datagrid,我有一个datagrid,我想在其中改变列标题的样式。样式存储在资源字典中,资源字典将加载并合并到窗口中。如果我有如下定义的标题: <DataGridTemplateColumn x:Uid="columnPartNumber" x:Name="columnPartNumber" Header="Part #" HeaderStyle="{Dynam

我有一个datagrid,我想在其中改变列标题的样式。样式存储在资源字典中,资源字典将加载并合并到窗口中。如果我有如下定义的标题:

 <DataGridTemplateColumn x:Uid="columnPartNumber" x:Name="columnPartNumber" Header="Part #"                                             
                         HeaderStyle="{DynamicResource PartsPartNumberHeader}">

PartsPartListDataGrid
PartsPartNumberHeader
是否在同一个资源字典中定义?
PartsPartNumberHeader
TargetType
是什么?我使用在与DataGrid相同的XAML文件中定义的样式做了一个快速测试,
HeaderStyle
工作得很好,正如我所期望的。使用样式Hoops更新了问题,我错了:我的样式在XAML设计器中工作,而不是在运行时。您的在运行时对我也不起作用。
HeaderStyle=“{StaticResource PartsPartListPartNumberHeader}”
在运行时对我起作用。我不能使用StaticResource,因为我的ResourceDictionary是从单独的文件加载的,而不是在windows资源中定义的。
 <DataGrid  CanUserAddRows="False" AutoGenerateColumns="False"
                      SelectionMode="Single"                      
                      Style="{DynamicResource PartsPartListDataGrid}">
 <Style TargetType="{x:Type DataGridColumnHeader}" x:Key="BasePartListColumnHeader" >
        <Setter Property="HorizontalContentAlignment" Value="Center" />
        <Setter Property="FontWeight" Value="Bold" />
        <Setter Property="Background" Value="White" />
        <Setter Property="BorderThickness" Value="1,0,1,0"/>
        <Setter Property="BorderBrush" Value="LightGray" />
    </Style>

<Style TargetType="{x:Type DataGridColumnHeader}" x:Key="PartsPartListPartNumberHeader" BasedOn="{StaticResource BasePartListColumnHeader}">
        <Setter Property="HorizontalContentAlignment" Value="Center" />
        <Setter Property="FontWeight" Value="Bold" />
        <Setter Property="Background" Value="White" />
        <Setter Property="BorderThickness" Value="1,0,1,0"/>
        <Setter Property="BorderBrush" Value="LightGray" />
    </Style>

 <Style TargetType="{x:Type DataGrid}" x:Key="PartsPartListDataGrid">
        <Setter Property="FontSize" Value="14"/>
        <Setter Property="FontFamily" Value="../resources/Futura Font Family/#Futura Std Book" />
        <Setter Property="Margin" Value="3,10,0,0"/>
        <Setter Property="BorderThickness" Value="0"/>
        <Setter Property="Background" Value="white"/>
        <Setter Property="GridLinesVisibility" Value="Horizontal" />
        <Setter Property="HorizontalGridLinesBrush" Value="Gray" />
        <Setter Property="RowStyle" Value="{DynamicResource PartsPartListRowStyle}" />
        <Setter Property="CellStyle" Value="{DynamicResource PartsPartListCellStyle}" />
        <Setter Property="ColumnHeaderStyle" Value="{DynamicResource BasePartListColumnHeader}" />
        <Setter Property="RowHeaderWidth" Value="0" />
    </Style>
 object headerStyle = this.TryFindResource("PartsPartListPartNumberHeader");
            if (headerStyle != null)
            {
                columnPartNumber.HeaderStyle = (Style)headerStyle;
            }