首页 > 其他分享 >WPF-Datagrid常用

WPF-Datagrid常用

时间:2023-07-17 09:56:43浏览次数:25  
标签:DataGrid 常用 LoadingRow Datagrid 添加 WPF Row

列标题居中和单元格内容居中

 

        <!--DataGrid 列标题居中方法-->
        <Style x:Key="ColumnHeaderStyle" TargetType="DataGridColumnHeader">
            <Setter Property="HorizontalContentAlignment"  Value="Center"/>
            <Setter Property="Background"  Value="Gray"/>
            <Setter Property="Foreground"  Value="White"/>
        </Style>

        <!--DataGrid单元格内容居中-->
        <Style x:Key="DataGridCellStyle" TargetType="DataGridCell">
            <Setter Property="HorizontalAlignment" Value="Center"/>
            <Setter Property="VerticalAlignment" Value="Center"/>
        </Style>

        <colorConverter:StringToColorConverter x:Key="DataGridColorConverter"/>

 

常用样式

        <!-- 列头标题栏样式 -->
        <Style TargetType="DataGridColumnHeader">
            <Setter Property="HorizontalContentAlignment" Value="Center"/>
            <Setter Property="Background" Value="Gray"/>
            <Setter Property="Foreground" Value="White"/>
            <Setter Property="BorderThickness" Value="1" />
            <Setter Property="BorderBrush" Value="Gray" />
            <Setter Property="Height" Value="30"/>
            <Setter Property="FontSize" Value="12"/>
        </Style>
        <!-- 单元格样式 -->
        <Style TargetType="DataGridCell">
            <Setter Property="FocusVisualStyle" Value="{x:Null}" />
            <Setter Property="BorderThickness" Value="0" />
            <Setter Property="BorderBrush" Value="Gray" />
            <Setter Property="FontSize" Value="12"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type DataGridCell}">
                        <Grid Background="{TemplateBinding Background}" >
                            <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

        <Style TargetType="TextBlock" x:Key="centerAlignmentStyle">
            <Setter Property="Foreground" Value="Black"/>
            <Setter Property="FontSize" Value="12"/>
            <Setter Property="HorizontalAlignment" Value="Center"/>
            <Setter Property="VerticalAlignment" Value="Center"/>
            <Setter Property="TextWrapping" Value="Wrap"/>
        </Style>

        <!--背景色改变必须先设置cellStyle 因为cellStyle会覆盖rowStyle样式,换行换色-->
        <Style TargetType="DataGridRow">
            <Setter Property="Height" Value="30"/>
            <Style.Triggers>
                <Trigger Property="AlternationIndex" Value="0">
                    <!--单元格背景色-->
                    <Setter Property="Background" Value="White" />
                    <!--ffe14d-->
                </Trigger>
                <Trigger Property="AlternationIndex" Value="1">
                    <!--<Setter Property="Background" Value="#f2f2f2" />-->
                    <Setter Property="Background" Value="Blue" />
                    <!--f1ef9f-->
                </Trigger>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Background" Value="#f1ef9f" />
                </Trigger>
                <Trigger Property="IsSelected" Value="True">
                    <Setter Property="Background" Value="#05c4ff"/>
                </Trigger>
                <Trigger Property="IsFocused" Value="True">
                    <Setter Property="Background" Value="#05c4ff"/>
                </Trigger>
            </Style.Triggers>
        </Style>

        <!--网格线颜色-->
        <Style TargetType="DataGrid">
            <!--该属性指示是否允许用户调整列宽度-->
            <Setter Property="CanUserResizeColumns"   Value="false" />
            <!--<Setter Property="Background"   Value="#2d323c" />-->
            <Setter Property="Background"   Value="White" />
            <Setter Property="BorderBrush"   Value="Gray" />
            <Setter Property="SelectionUnit"   Value="FullRow" />
            <Setter Property="VerticalScrollBarVisibility"   Value="Auto" />
            <Setter Property="HorizontalScrollBarVisibility"   Value="Auto" />
            <Setter Property="RowHeaderWidth"   Value="0" />
            <Setter Property="HorizontalGridLinesBrush">
                <Setter.Value>
                    <SolidColorBrush Color="#d6c79b" />
                </Setter.Value>
            </Setter>
            <Setter Property="VerticalGridLinesBrush">
                <Setter.Value>
                    <SolidColorBrush Color="#d6c79b" />
                </Setter.Value>
            </Setter>
        </Style>

每一行添加序号

1,在XAML页面中的DataGrid中添加一列

 <DataGridTextColumn Header="序号" Width="*" Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow}}, Path=Header}"  CellStyle="{StaticResource DataGridCellStyle}"/>

2,在DataGrid上添加一个LoadingRow事件,该事件的处理方法如下

        private void DataGrid_LoadingRow(object sender, DataGridRowEventArgs e)
        {
            e.Row.Header = e.Row.GetIndex() + 1;
        }

  

 

标签:DataGrid,常用,LoadingRow,Datagrid,添加,WPF,Row
From: https://www.cnblogs.com/baozi789654/p/17559169.html

相关文章

  • New!DevExpress WPF v23.1 最新版本系统环境配置要求
    DevExpressWPF 拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。无论是Office办公软件的衍伸产品,还是以数据为中......
  • Prometheus常用查询
    Prometheus常用查询集群指标#CPU核心总数sum(machine_cpu_cores{cluster="$cluster",job="kubelet"})by(cluster)#CPU请求总数sum(kube_pod_container_resource_requests{cluster="$cluster",job="kube-state-metrics",unit="core"......
  • Linux网络配置常用的基础命令(面试也经常提到)
    Linux网络配置常用的基础命令原创 weijishu 微技术之家 2023-07-1407:07 发表于上海通常情况下,不管什么操作系统,配置IP地址分为如下两类:动态DHCP模式:系统默认是DHCP也就是动态获取IP地址,这种有个坏处就是IP地址会经常变换。如果用连接工具的话,IP地址改变之后需要重......
  • 常用语言的线程模型(Java、go、C++、python3)
    背景知识软件是如何驱动硬件的?硬件是需要相关的驱动程序才能执行,而驱动程序是安装在操作系统内核中。如果写了一个程序A,A程序想操作硬件工作,首先需要进行系统调用,由内核去找对应的驱动程序驱使硬件工作。而驱动程序怎么让硬件工作的呢?驱动程序作为硬件和操作系统之间的媒介,可以......
  • Docker CLI docker container ls 常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中d......
  • LVS实战-DR模式配置(常用、重点掌握)
    LVS实战-DR模式配置(常用、重点掌握)原创 Cloud研习社 Cloud研习社 2023-07-1511:36 发表于山东收录于合集#一站式教程260个#LVS9个#计算机230个#云计算266个#linux274个教程每周二、四、六更新虚拟IP地址在RS和DS(即LVS服务器)上都要配置。DS的虚拟IP地......
  • linux部署docker以及常用容器部署
    linux部署docker以及常用容器部署前言本文主要教大家linux安装部署docker以及常用容器部署1.docker部署1.1.依次运⾏以下命令添加yum源代码如下yumupdateyuminstallepel-release-yyumcleanallyumlist1.2.安装并运⾏Docker。代码如下yuminstalldocker-io-ysystemct......
  • NumPy(1)-常用的初始化方法
    一、NumPy介绍NumPy是Python中科学计算的基础包,它是一个Python库,提供多维数组对象,各种派生对象(如掩码数组和矩阵),以及用于数组快速操作的各种API,有包括数学、逻辑、形状操作、排序、选择、输入输出、离散傅立叶变换、基本线性代数,基本统计运算和随机模拟等等。功能强大的N维......
  • day07 7.2 常用加密
    day077.2常用加密【1】字符串与字节反编译回来的代码有些字符串使用字节表示隐藏真正字符串Stringsalt="sign";System.out.println(Arrays.toString(salt.getBytes()));Stringv4=newString(newbyte[]{115,105,103,110});System.out.println(salt);Syste......
  • WPF - 002 数据更新
    数据更新数据绑定不仅可以绑定现有的控件属性,也可以绑定自定义类的属性,通过INotifyPropertyChanged接口实现绑定源到绑定目标的消息通知。非列表属性的更新例如:以下代码通过定义一个User类,并将其中的Name属性绑定至TextBox的Text属性上,为了实现后台属性更新时对前台U......