WinUI3中如何通过C#的Setter修改DataGrid样式字典?
CommunityToolkit.Controls DataGrid 编程式设置样式示例
下面是用C#代码为CommunityToolkit.Controls中的DataGrid添加样式Setter的完整示例,涵盖常用样式修改场景:
1. 引用必要命名空间
确保已添加对应平台的命名空间引用:
using CommunityToolkit.Wpf.Controls; // WPF平台 // WinUI平台替换为:using CommunityToolkit.WinUI.Controls; using System.Windows; using System.Windows.Media;
2. 创建并配置Style
你可以基于默认样式构建新Style,或者直接修改DataGrid已有的Style:
方式一:基于默认样式构建新Style
// 创建DataGrid专属Style,继承默认样式(保留原有基础样式逻辑) var dataGridStyle = new Style(typeof(DataGrid)) { BasedOn = Application.Current.Resources["DataGridStyle"] as Style // 若使用自定义基础样式,替换为对应资源键名 };
方式二:直接修改现有DataGrid的Style
// 获取目标DataGrid的Style,若为空则新建 var dataGridStyle = myDataGrid.Style ?? new Style(typeof(DataGrid));
3. 添加样式Setter
通过Setter修改各类样式属性,示例如下:
// 表头背景色 dataGridStyle.Setters.Add(new Setter(DataGrid.ColumnHeaderBackgroundProperty, Brushes.DarkSlateGray)); // 表头文字颜色 dataGridStyle.Setters.Add(new Setter(DataGrid.ColumnHeaderForegroundProperty, Brushes.White)); // 行默认高度 dataGridStyle.Setters.Add(new Setter(DataGrid.RowHeightProperty, 35.0)); // 单元格字体大小 dataGridStyle.Setters.Add(new Setter(DataGridCell.FontSizeProperty, 14)); // 选中行背景色 dataGridStyle.Setters.Add(new Setter(DataGrid.SelectedItemBackgroundProperty, Brushes.LightSteelBlue)); // 网格线可见性与颜色 dataGridStyle.Setters.Add(new Setter(DataGrid.GridLinesVisibilityProperty, DataGridGridLinesVisibility.All)); dataGridStyle.Setters.Add(new Setter(DataGrid.HorizontalGridLinesBrushProperty, Brushes.LightGray)); // 交替行背景色 dataGridStyle.Setters.Add(new Setter(DataGrid.AlternatingRowBackgroundProperty, Brushes.LightGray));
4. 将Style应用到DataGrid
最后把配置好的Style赋值给目标DataGrid:
myDataGrid.Style = dataGridStyle;
内容的提问来源于stack exchange,提问作者Biryukov Georgy
相关产品推荐
相关产品推荐

