我有一個帶有自動生成列的 WPF DataGrid,我需要在單元格中使用非常特定的樣式,如下圖所示。

為此,我根據列索引創建了 CellStyles 以獲得所需的顏色組合,例如標題。
datagrid.Columns[colIndex].HeaderStyle = new Style(typeof(DataGridColumnHeader));
datagrid.Columns[colIndex].HeaderStyle.Setters.Add(new Setter(Control.BackgroundProperty, (SolidColorBrush)new BrushConverter().ConvertFrom(colors[colorIndex])));
datagrid.Columns[colIndex].HeaderStyle.Setters.Add(new Setter(Control.BorderBrushProperty, (SolidColorBrush)new BrushConverter().ConvertFrom(colors[colorIndex])));
datagrid.Columns[colIndex].HeaderStyle.Setters.Add(new Setter(Control.FontWeightProperty, FontWeights.Bold));
datagrid.Columns[colIndex].HeaderStyle.Setters.Add(new Setter(Control.FontSizeProperty, 18.0));
像這樣對于需要特定顏色的單元格
datagrid.Columns[colIndex].CellStyle = new Style(typeof(DataGridCell));
datagrid.Columns[colIndex].CellStyle.Setters.Add(new Setter(Control.BackgroundProperty, (SolidColorBrush)new BrushConverter().ConvertFrom(colors[colorIndex])));
datagrid.Columns[colIndex].CellStyle.Setters.Add(new Setter(Control.BorderBrushProperty, (SolidColorBrush)new BrushConverter().ConvertFrom(colors[colorIndex])));
datagrid.Columns[colIndex].CellStyle.Setters.Add(new Setter(TextBlock.FontWeightProperty, FontWeights.Bold));
datagrid.Columns[colIndex].CellStyle.Setters.Add(new Setter(TextBlock.FontSizeProperty, 18.0));
datagrid.Columns[colIndex].IsReadOnly = true;
到目前為止一切都很好,但是,當我單擊一行時,使用“CellStyle = new Style”定義樣式的單元格變為全白,背景和前景,我不知道我必須如何改變使行資料可見。

謝謝!
uj5u.com熱心網友回復:
HighlightBrushKey為和HighlightTextBrushKey畫筆定義自定義顏色:
<DataGrid ...>
<DataGrid.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black"/>
</DataGrid.Resources>
...
</DataGrid>
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/513501.html
標籤:C#wpf虚拟机数据网格
上一篇:如何將結果通過管道傳輸到輸出陣列
