字体大小未应用于datagrid列标题

dea*_*ace 1 c# wpf

我有一个wpf数据网格,我在其中通过C#添加所有列和样式.

我已经应用了ColumnHeaderStyle,如下所示:

  1. 书面的二传手:

    var fontSizeSetter = new Setter {Property = Control.FontSizeProperty, Value = Convert.ToDouble(font.Size)};

  2. 风格为:

            var headerStyle = new Style();
            headerStyle.Setters.Add(fontSetter);
            headerStyle.Setters.Add(fontSizeSetter);
            headerStyle.Setters.Add(fontStyleSetter);
            headerStyle.Setters.Add(fontWeightSetter);
    
    Run Code Online (Sandbox Code Playgroud)
  3. 将它应用于我的Datagrid'sColumnHeaderStyle:

view.DataGrid.ColumnHeaderStyle = headerStyle;

当前问题:现在,当我设置FontFamilyFontStyle时,它会被应用.但列标题文本大小保持不变.它没有得到更新. 在此输入图像描述

整个方法:

private static void ConfigureFontsForDataGrid(Views.StatusMonitor view, StatusMonitorAgencyFontType font)
        {
            var fontfamily = new FontFamily(font.Font);
            var fontSetter = new Setter { Property = Control.FontFamilyProperty, Value = fontfamily };
            var fontSizeSetter = new Setter { Property = Control.FontSizeProperty, Value = Convert.ToDouble(font.Size) };
            var fontStyleSetter = new Setter { Property = Control.FontStyleProperty };
            var fontWeightSetter = new Setter { Property = Control.FontWeightProperty };

            // Defaults
            fontWeightSetter.Value = FontWeights.Regular;
            fontStyleSetter.Value = FontStyles.Normal;

            switch (font.Style)
            {
                case "Regular":
                    fontWeightSetter.Value = FontWeights.Regular;
                    fontStyleSetter.Value = FontStyles.Normal;
                    break;

                case "Bold Italic":
                    fontWeightSetter.Value = FontWeights.Bold;
                    fontStyleSetter.Value = FontStyles.Italic;
                    break;
            }

            //Configuring data grid cell font
            view.DataGrid.CellStyle.Setters.Add(fontSetter);
            view.DataGrid.CellStyle.Setters.Add(fontSizeSetter);
            view.DataGrid.CellStyle.Setters.Add(fontStyleSetter);
            view.DataGrid.CellStyle.Setters.Add(fontWeightSetter);

            //Configuring data grid column header font
            view.DataGrid.ColumnHeaderStyle.Setters.Add(fontSetter);
            view.DataGrid.ColumnHeaderStyle.Setters.Add(fontSizeSetter);
            view.DataGrid.ColumnHeaderStyle.Setters.Add(fontStyleSetter);
            view.DataGrid.ColumnHeaderStyle.Setters.Add(fontWeightSetter);
        }
Run Code Online (Sandbox Code Playgroud)

Nee*_*bey 7

使用此代码调整Datagrid中列标题的字体:

<DataGrid.ColumnHeaderStyle>
<Style TargetType="DataGridColumnHeader">
    <Setter Property="FontSize" Value="10"/>
</Style>
Run Code Online (Sandbox Code Playgroud)