Datagrid前景色不起作用

我有一个显示二维数据的简单数据网格。 我在测试项目中尝试过,结果很好。

在此处输入图像描述

这是xmal:

   

以及相关的事件代码:

  private void DataGrid_LoadingRow(object sender, System.Windows.Controls.DataGridRowEventArgs e) { e.Row.Header = "R" + ((e.Row.GetIndex()) + 1).ToString(); } private void dg_AutoGeneratingColumn(object sender, System.Windows.Controls.DataGridAutoGeneratingColumnEventArgs e) { string str = e.PropertyName; int num = int.Parse(e.PropertyName); e.Column.Header = "C" + (num + 1).ToString(); } 

然后我必须把它放在我的真实项目中,这是一个风格的窗口。

所以我把同样非常简单的xaml(在这里添加背景和前景,我有一个渐变背景),以便xamls是:

    

效果是:

在此处输入图像描述

所以简而言之,FOREGROUND并没有设置在任何部分。 那是:

  • 细胞
  • 行标题
  • 列标题

无处可去。 谁能告诉我为什么? 先谢谢帕特里克

在WPF DataGrid中,所有与单元格相关的设计都需要设置为Column的ElementStyle ,它会覆盖Grid中的前景集。 请尝试以下方法:

在您的XAML资源中:

  

AutoGeneratingColumn处理程序中:

 private void dg_AutoGeneratingColumn(object sender, System.Windows.Controls.DataGridAutoGeneratingColumnEventArgs e) { string str = e.PropertyName; int num = int.Parse(e.PropertyName); e.Column.Header = "C" + (num + 1).ToString(); e.Column.ElementStyle = FindResource("BlackCellStyle") as Style; } 

这会将前景直接应用于您的单元格