首页 > 其他分享 >WPF-DataGrid 样式设置

WPF-DataGrid 样式设置

时间:2024-06-12 18:21:34浏览次数:7  
标签:code 样式 DataGrid 设置 WPF ListView

在wpf中使用DataGrid 虽然方便,但是其默认样式往往很难满足需求,而修改模板往往由比较麻烦,很多时候我们会用ListBox或ListView +DataTemplate 来实现同样效果,但为了有些时候需要应用,这里记录一下一些基本属性设置方法,以免忘记。

code

<Window x:Class="WpfApp7.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp7"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800" Background="Black">
    <Window.Resources>
	    <!--这里模板样式设置在DataGridColumnHeader上,而非DataGridHeader-->
         <Style TargetType="DataGridColumnHeader">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate  TargetType="DataGridColumnHeader">
                            <Grid>
                                <Border Background="Transparent" BorderBrush="White" BorderThickness="1">
                                    <ContentPresenter Content="{TemplateBinding Content}" HorizontalAlignment="Center" VerticalAlignment="Center" />
                                </Border>
                            </Grid>
                        </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    
        
        <Style TargetType="DataGridRow">
		<!--这里设置行输入背景色为透明色,默认为白色-->
            <Setter Property="Background" Value="Transparent" />
        </Style>
    </Window.Resources>
    <Grid>
        <!--这里的RowHeaderWidth 是表格最左侧渐冻列,设为0 则没有,默认状态下大概为5,所以如果不设置,而我们又在表头应用了样式,会出现列线和表头列线错位。另外需要设置AutoGenerateColumns为false,否则会自动生成以字段命名的列.CanUserAddRows 增加行-->
        <DataGrid RowHeaderWidth="20" ItemsSource="{Binding }" AutoGenerateColumns="False" CanUserAddRows="False" Background="Transparent" Foreground="White"
                  VerticalGridLinesBrush="White" GridLinesVisibility="Vertical">
            <DataGrid.Columns>
                <DataGridTextColumn Header="Id" Binding="{Binding Id}" Width="*"/>
                <DataGridTextColumn Header="Name" Binding="{Binding Name}" Width="*"/>
                <DataGridTextColumn Header="Age" Binding="{Binding Age}" Width="*"/>
                <DataGridTextColumn Header="Address" Binding="{Binding Address}" Width="*"/>
            </DataGrid.Columns>
        </DataGrid>
    </Grid>
</Window>

标签:code,样式,DataGrid,设置,WPF,ListView
From: https://www.cnblogs.com/sundh1981/p/18244491

相关文章

  • 关于Android切换系统字体大小和字体样式导致App崩溃或者界面错乱的问题
    测试小姐姐测试版本的时候,把系统字体给变大了,再回到app直接崩溃,分析原因找问题,主要有2种方式第一种.设置字体大小我们都是用的是sp,如果改为dp就不会有这个问题,我相信大部分写android的都是用的sp,现在改回来肯定是头痛,别着急,我们先看看源码 publicstaticfloata......
  • 先获取行高和文本的高度,然后通过js动态修改样式实现文本超出一行后显示省略号,这样就可
    <template> <div> <el-tooltip class="box-item" effect="dark" :content="scope.row[prop]" placement="top-start" append-to=".m-table" :teleported="true" :disabl......
  • WPF/C#:异常处理
    什么是异常?在C#中,异常是在程序执行过程中发生的特殊情况,例如尝试除以零、访问不存在的文件、网络连接中断等。这些情况会中断程序的正常流程。当C#程序中发生这种特殊情况时,会创建一个异常对象并将其抛出。这个异常对象包含了关于异常的详细信息,如异常类型和异常发生时的程序状......
  • WPF/C#:程序关闭的三种模式
    ShutdownMode枚举类型介绍ShutdownMode是一个枚举类型,它定义了WPF应用程序的关闭方式。这个枚举类型有三个成员:OnLastWindowClose:当最后一个窗口关闭或者调用System.Windows.Application.Shutdown方法时,应用程序会关闭。OnMainWindowClose:当主窗口关闭或者调用System.Windows.......
  • WPF dependency property to customize control in usercontrol
    //usercontrol<UserControlx:Class="WpfApp157.ImageListBox"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xm......
  • WPF中读取Excel文件的内容
    演示效果实现方案1.首先导入需要的Dll(这部分可能需要你自己搜一下)Epplus.dllExcel.dllICSharpCode.SharpZipLib.dll2.在你的解决方案的的依赖项->添加引用->浏览->选择1中的这几个Dll点击确定。(添加依赖)3.然后看代码内容附上源码usingExcel;usingSystem.Dat......
  • 使用WPF 当程序已打开时第二次打开程序直接弹出第一次打开的程序
    在代码中增加[DllImport("user32.dll")]privatestaticexternboolSetForegroundWindow(IntPtrhWnd);[DllImport("user32.dll")]privatestaticexternboolShowWindowAsync(IntPtrhWnd,intnCmdShow);[DllImport("user32.dll"......
  • WPF阻止窗体被系统缩放,使用显示器DPI
    WPF默认是跟随系统DPI变化(缩放与布局)而缩放窗体的;微软把它称为默认DPI感知,当DPI发生变化时WPF感知到后缩放窗体,介绍链接:设置进程的默认DPI感知(Windows)-Win32apps|MicrosoftLearn如果我们不希望窗体被缩放,而是让窗体使用显示器DPI该怎么办呢?首先修改app.manifest,如......
  • 发现XWPFDocument写入Word文档时的小BUG:两天的探索与解决之旅
    引言最近在使用XWPFDocument生成Word文档时,遇到一个错误:“未将对象引用设置到对象的实例”。这个平常很容易找到原因的问题却困扰了我两天,最终发现问题出在设置段落时赋值了空值。本文将详细记录这个问题的原因及解决方法,希望能对遇到相同问题的开发者有所帮助。第一天:问题的发......
  • 【JS封装-兼容IE(较旧版本如IE8及以下)】强化编程实践:精选JavaScript函数封装集锦-添加E
    目录添加Event监听获取非行间样式JSON.parse与JSON.stringifyquerySelector与querySelectorAll的兼容支持跨浏览器的classList操作兼容性处理console.log兼容性处理forEach方法Promise的兼容性处理FetchAPI的兼容性处理添加Event监听IE8及以下版本不支持addEvent......