当前位置: 首页 > article >正文

WPF中设置DataGrid的常用样式

 1. 设置DataGrid控件的外观和行为

 

<!-- 定义一个名为DataGridDefault的样式,专门用于设置DataGrid控件的外观和行为 -->
<Style x:Key="DataGridDefault" TargetType="DataGrid">
    
    <!-- 设置DataGrid在Grid布局中的行索引为1 -->
    <Setter Property="Grid.Row" Value="1" />
    
    <!-- 设置DataGrid的水平对齐方式为拉伸,使其填满整个分配给它的水平空间 -->
    <Setter Property="HorizontalAlignment" Value="Stretch" />
    
    <!-- 设置DataGrid不自动生成列,需要手动定义列 -->
    <Setter Property="AutoGenerateColumns" Value="False" />
    
    <!-- 设置DataGrid的背景颜色为透明 -->
    <Setter Property="Background" Value="Transparent" />
    
    <!-- 设置DataGrid的边框厚度为0,即没有边框 -->
    <Setter Property="BorderThickness" Value="0" />
    
    <!-- 设置DataGrid的边框颜色为白色,但由于BorderThickness为0,这个设置不会显示出来 -->
    <Setter Property="BorderBrush" Value="#ffffff" />
    
    <!-- 设置DataGrid不显示网格线 -->
    <Setter Property="GridLinesVisibility" Value="None" />
    
    <!-- 设置DataGrid为只读模式,不允许编辑单元格内容 -->
    <Setter Property="IsReadOnly" Value="True" />
    
    <!-- 设置DataGrid的行头宽度为0,即不显示行头 -->
    <Setter Property="RowHeaderWidth" Value="0" />
    
    <!-- 设置DataGrid的行高为40像素 -->
    <Setter Property="RowHeight" Value="40" />
    
    <!-- 设置DataGrid的选择单元为单个单元格 -->
    <Setter Property="SelectionUnit" Value="Cell" />
    
    <!-- 设置DataGrid的外边距为2像素 -->
    <Setter Property="Margin" Value="2" />
</Style>

2.设置DataGridColumnHeader控件

 

<!-- 定义一个名为DataGridColumnHeaderStyle的样式,专门用于设置DataGridColumnHeader控件的外观 -->
<Style x:Key="DataGridColumnHeaderStyle" TargetType="DataGridColumnHeader">
    
    <!-- 设置列头中内容的水平对齐方式为左对齐 -->
    <Setter Property="HorizontalContentAlignment" Value="Left" />
    
    <!-- 设置列头中内容的内边距,左边距为10,其他三边为0 -->
    <Setter Property="Padding" Value="10,0,0,0" />
    
    <!-- 设置列头中内容的垂直对齐方式为居中 -->
    <Setter Property="VerticalContentAlignment" Value="Center" />
    
    <!-- 设置列头的高度为40像素 -->
    <Setter Property="Height" Value="40" />
    
    <!-- 设置列头的背景颜色为透明 -->
    <Setter Property="Background" Value="Transparent" />
    
    <!-- 以下是两行被注释掉的代码,用于设置列头的边框颜色和厚度 -->
    <!--<Setter Property="BorderBrush" Value="#ffffff" />-->
    <!--<Setter Property="BorderThickness" Value="1" />-->
    
    <!-- 设置列头的前景色(即文本颜色)为白色 -->
    <Setter Property="Foreground" Value="#ffffff" />
</Style>

可以在WPF的DataGrid控件中应用到所有的列头上,使得它们具有统一的外观和风格 

3.设置DataGridCell控件

 

<!-- 定义一个名为DataGridCellStyle的样式,专门用于设置DataGridCell控件的外观 -->
<Style x:Key="DataGridCellStyle" TargetType="DataGridCell">
    
    <!-- 设置单元格中内容的水平对齐方式为居中 -->
    <Setter Property="HorizontalContentAlignment" Value="Center" />
    
    <!-- 设置单元格中内容的垂直对齐方式为居中 -->
    <Setter Property="VerticalContentAlignment" Value="Center" />
    
    <!-- 设置单元格的边框厚度为0,即不显示边框 -->
    <Setter Property="BorderThickness" Value="0" />
    
    <!-- 定义触发器,用于在单元格的属性值变化时改变单元格的样式 -->
    <Style.Triggers>
        <!-- 当单元格被选中(IsSelected为True)时,触发以下样式变化 -->
        <Trigger Property="IsSelected" Value="True">
            
            <!-- 设置选中单元格的背景颜色为特定的颜色值(#660077) -->
            <Setter Property="Background" Value="#660077" />
        </Trigger>
    </Style.Triggers>
</Style>

可以在WPF的DataGrid控件中应用到所有的单元格上,使得它们具有统一的外观和风格可以在XAML的其他部分通过键值引用这个样式。TargetType属性指定了这个样式是针对DataGridCell类型的控件。每个Setter标签定义了一个特定的属性和它的值,用于设置单元格的不同视觉方面。Style.Triggers部分定义了一个触发器,当单元格的IsSelected属性为True时,即单元格被选中时,会改变单元格的背景颜色。这样的样式定义可以让开发者在DataGrid控件中重用这个样式,以保持单元格的一致外观。


http://www.kler.cn/a/373015.html

相关文章:

  • Linux中Samba服务配置和管理
  • 3D Gaussian Splatting代码详解(二):模型构建
  • 从理解路由到实现一套Router(路由)
  • 无人机协同控制技术详解!
  • [0152].第3节:IDEA中工程与模块
  • 推荐系统中的AB测试
  • Mac环境鸿蒙模拟器安装
  • VueSSR详解 VueServerRenderer Nutx
  • Docker学习笔记【从入门到精通】
  • ubuntu 挂载 新 硬盘 ext3
  • 【重学 MySQL】七十九、深入探索用户变量
  • 警务辅助人员管理系统小程序ssm+论文源码调试讲解
  • solidity的struct对象,web3j java解析输出参数
  • 海思MPP音视频总结
  • uniapp离线打包app无法调用相机权限的解决思路
  • RHCE http作业
  • hdlbits系列verilog解答(DFF8-8位D触发器)-81
  • 大语言模型(LLM)入门级选手初学教程 II
  • Linux学习_11
  • 校园社团信息管理:Spring Boot框架的深度解析
  • Springboot3.3 + Mybatis / Mybatis-plus
  • 2024年10月23日Github流行趋势
  • Invalid version: ‘4.0.0-unsupported‘ - cmd 报错解决方案
  • Django入门教程——数据模型建立
  • SCSS在Vue中切换主题颜色示例(mixin + scss方式,简单高效)
  • 基于Spring Cloud Alibaba开源微服务框架:构建智能化用户审核流程