首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

需要WPF Toolkit控件的主题(尤其是DataGrid)

在云计算领域,WPF Toolkit是一个非常重要的工具,它提供了许多有用的控件,可以帮助开发人员快速构建漂亮的用户界面。其中,WPF Toolkit中的DataGrid控件是一个非常强大的数据表格控件,可以用于展示和编辑数据表格。

在使用WPF Toolkit的DataGrid控件时,可以使用主题来改变其外观和感觉。主题可以通过XAML文件来定义,并且可以通过将主题应用到DataGrid控件上来改变其外观。

以下是一个示例主题,可以用于DataGrid控件:

代码语言:<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
复制
代码语言:txt
复制
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
代码语言:txt
复制
                xmlns:tk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit">

<Style TargetType="{x:Type tk:DataGrid}">

代码语言:txt
复制
   <Setter Property="Background" Value="#FFFFFF"/>
代码语言:txt
复制
   <Setter Property="BorderBrush" Value="#CCCCCC"/>
代码语言:txt
复制
   <Setter Property="BorderThickness" Value="1"/>
代码语言:txt
复制
   <Setter Property="RowDetailsVisibilityMode" Value="VisibleWhenSelected"/>
代码语言:txt
复制
   <Setter Property="ScrollViewer.CanContentScroll" Value="true"/>
代码语言:txt
复制
   <Setter Property="ScrollViewer.PanningMode" Value="Both"/>
代码语言:txt
复制
   <Setter Property="Stylus.IsFlicksEnabled" Value="False"/>
代码语言:txt
复制
   <Setter Property="VerticalScrollBarVisibility" Value="Auto"/>
代码语言:txt
复制
   <Setter Property="Template">
代码语言:txt
复制
       <Setter.Value>
代码语言:txt
复制
           <ControlTemplate TargetType="{x:Type tk:DataGrid}">
代码语言:txt
复制
               <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="True">
代码语言:txt
复制
                   <ScrollViewer x:Name="DG_ScrollViewer" Focusable="false">
代码语言:txt
复制
                       <ScrollViewer.Template>
代码语言:txt
复制
                           <ControlTemplate TargetType="{x:Type ScrollViewer}">
代码语言:txt
复制
                                <Grid>
代码语言:txt
复制
                                    <Grid.ColumnDefinitions>
代码语言:txt
复制
                                       <ColumnDefinition Width="*"/>
代码语言:txt
复制
                                       <ColumnDefinition Width="Auto"/>
代码语言:txt
复制
                                    </Grid.ColumnDefinitions>
代码语言:txt
复制
                                    <Grid.RowDefinitions>
代码语言:txt
复制
                                        <RowDefinition Height="*"/>
代码语言:txt
复制
                                        <RowDefinition Height="Auto"/>
代码语言:txt
复制
                                    </Grid.RowDefinitions>
代码语言:txt
复制
                                   <ScrollContentPresenter x:Name="PART_ScrollContentPresenter" CanContentScroll="{TemplateBinding CanContentScroll}" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" Grid.Column="0" Grid.Row="0" Margin="{TemplateBinding Padding}" />
代码语言:txt
复制
                                   <ScrollBar x:Name="PART_HorizontalScrollBar" AutomationProperties.AutomationId="HorizontalScrollBar" Cursor="Arrow" Grid.Column="0" Grid.Row="1" Maximum="{TemplateBinding ScrollableWidth}" Minimum="0" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" Value="{Binding Path=HorizontalOffset, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportWidth}" Style="{StaticResource ScrollBarStyle1}"/>
代码语言:txt
复制
                                   <ScrollBar x:Name="PART_VerticalScrollBar" AutomationProperties.AutomationId="VerticalScrollBar" Cursor="Arrow" Grid.Column="1" Grid.Row="0" Maximum="{TemplateBinding ScrollableHeight}" Minimum="0" Orientation="Vertical" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" Value="{Binding Path=VerticalOffset, RelativeSource={RelativeSource TemplatedParent}}" ViewportSize="{TemplateBinding ViewportHeight}" Style="{StaticResource ScrollBarStyle1}"/>
代码语言:txt
复制
                                </Grid>
代码语言:txt
复制
                            </ControlTemplate>
代码语言:txt
复制
                        </ScrollViewer.Template>
代码语言:txt
复制
                       <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
代码语言:txt
复制
                    </ScrollViewer>
代码语言:txt
复制
                </Border>
代码语言:txt
复制
            </ControlTemplate>
代码语言:txt
复制
        </Setter.Value>
代码语言:txt
复制
    </Setter>
代码语言:txt
复制
   <Setter Property="ColumnHeaderStyle">
代码语言:txt
复制
       <Setter.Value>
代码语言:txt
复制
           <Style TargetType="{x:Type tk:DataGridColumnHeader}">
代码语言:txt
复制
               <Setter Property="Background" Value="#DDDDDD"/>
代码语言:txt
复制
               <Setter Property="BorderBrush" Value="#999999"/>
代码语言:txt
复制
               <Setter Property="BorderThickness" Value="0,0,1,1"/>
代码语言:txt
复制
               <Setter Property="Padding" Value="6,0,6,0"/>
代码语言:txt
复制
               <Setter Property="SeparatorBrush" Value="#999999"/>
代码语言:txt
复制
               <Setter Property="SeparatorVisibility" Value="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type tk:DataGrid}}, Path=AreColumnHeadersVisible, Converter={StaticResource BooleanToVisibilityConverter}}"/>
代码语言:txt
复制
               <Setter Property="Template">
代码语言:txt
复制
                   <Setter.Value>
代码语言:txt
复制
                       <ControlTemplate TargetType="{x:Type tk:DataGridColumnHeader}">
代码语言:txt
复制
                            <Grid>
代码语言:txt
复制
                                <Themes:DataGridHeaderBorder BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SeparatorBrush="{TemplateBinding SeparatorBrush}" SeparatorVisibility="{TemplateBinding SeparatorVisibility}" SortDirection="{Binding Path=SortDirection, RelativeSource={RelativeSource TemplatedParent}}" IsClickable="{TemplateBinding CanUserSort}" IsPressed="{TemplateBinding IsPressed}" IsHovered="{TemplateBinding IsMouseOver}">
代码语言:txt
复制
                                   <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
代码语言:txt
复制
                                </Themes:DataGridHeaderBorder>
代码语言:txt
复制
                                <Thumb x:Name="PART_LeftHeaderGripper" HorizontalAlignment="Left" Style="{StaticResource ColumnHeaderGripperStyle}"/>
代码语言:txt
复制
                                <Thumb x:Name="PART_RightHeaderGripper" HorizontalAlignment="Right" Style="{StaticResource ColumnHeaderGripperStyle}"/>
代码语言:txt
复制
                            </Grid>
代码语言:txt
复制
                        </ControlTemplate>
代码语言:txt
复制
                    </Setter.Value>
代码语言:txt
复制
                </Setter>
代码语言:txt
复制
            </Style>
代码语言:txt
复制
        </Setter.Value>
代码语言:txt
复制
    </Setter>
代码语言:txt
复制
   <Setter Property="RowStyle">
代码语言:txt
复制
       <Setter.Value>
代码语言:txt
复制
           <Style TargetType="{x:Type tk:DataGridRow}">
代码语言:txt
复制
               <Setter Property="Background" Value="Transparent"/>
代码语言:txt
复制
               <Setter Property="BorderBrush" Value="Transparent"/>
代码语言:txt
复制
               <Setter Property="BorderThickness" Value="0"/>
代码语言:txt
复制
               <Setter Property="HorizontalAlignment" Value="Stretch"/>
代码语言:txt
复制
               <Setter Property="IsTabStop" Value="False"/>
代码语言:txt
复制
               <Setter Property="Padding" Value="2"/>
代码语言:txt
复制
               <Setter Property="ValidationErrorTemplate">
代码语言:txt
复制
                   <Setter.Value>
代码语言:txt
复制
                       <ControlTemplate>
代码语言:txt
复制
                            <Grid ToolTip="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type tk:DataGridRow}}, Path=ValidationError}">
代码语言:txt
复制
                                <Ellipse Stroke="Red" Fill="Red" Width="10" Height="10"/>
代码语言:txt
复制
                            </Grid>
代码语言:txt
复制
                        </ControlTemplate>
代码语言:txt
复制
                    </Setter.Value>
代码语言:txt
复制
                </Setter>
代码语言:txt
复制
               <Setter Property="Template">
代码语言:txt
复制
                   <Setter.Value>
代码语言:txt
复制
                       <ControlTemplate TargetType="{x:Type tk:DataGridRow}">
代码语言:txt
复制
                            <Grid x:Name="DGR_Root">
代码语言:txt
复制
                                <Grid.RowDefinitions>
代码语言:txt
复制
                                    <RowDefinition Height="*"/>
代码语言:txt
复制
                                    <RowDefinition Height="Auto"/>
代码语言:txt
复制
                                </Grid.RowDefinitions>
代码语言:txt
复制
                                <Grid.ColumnDefinitions>
代码语言:txt
复制
                                   <ColumnDefinition Width="Auto"/>
代码语言:txt
复制
                                   <ColumnDefinition Width="*"/>
代码语言:txt
复制
                                </Grid.ColumnDefinitions>
代码语言:txt
复制
                                <Grid.RenderTransform>
代码语言:txt
复制
                                   <TransformGroup>
代码语言:txt
复制
                                       <ScaleTransform/>
代码语言:txt
复制
                                        <SkewTransform/>
代码语言:txt
复制
                                        <RotateTransform/>
代码语言:txt
复制
                                       <TranslateTransform/>
代码语言:txt
复制
                                    </TransformGroup>
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Windows Community Toolkit 4.0 - DataGrid - Overview

3.0,增加了 DataGrid 等控件,Sample App 支持了 Fluent Design 设计和明暗两种风格,修复了遗留的控件 BUG,接下来我们主要看一下 DataGrid 控件的实现。...DataGrid 控件是一个可以展示多行多列数据集合的控件,相信大家在 Silverlight WPF 等平台开发中都有过接触,该控件非常适合用来展示数据表格,可以完全是文本内容展示,也可以在数据中包含按钮等操作...由于 DataGrid 控件涉及到的功能比较复杂,代码量也比较大,我们会分为几篇文章来详细讲解。而本篇,我们会先针对 DataGrid 控件的整体实现和使用做介绍。...DataGrid DataGrid 控件的最重要实现在 DataGrid 文件夹中,一共有 50 多个类。...调用示例 我们来看一下 DataGrid 控件的调用方式,先看一下 XAML 的简单实现: xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls

91020
  • Windows Community Toolkit 4.0 - DataGrid - Part02

    概述 在上面一篇 Windows Community Toolkit 4.0 - DataGrid - Part01 中,我们针对 DataGrid 控件的 CollectionView 部分做了详细分享...Windows Community Toolkit Doc - DataGrid Windows Community Toolkit Source Code - DataGrid Namespace: ...Extensions 该类的功能是 DataGrid 控件的扩展,主要有以下扩展方法: IsHandlerSuspended - 处理器暂停的标识; ContainsChild - 遍历可视化树,判断当前控件是否包含某个...child 元素,该方法在 WPF UWP 的很多控件中都有过体现; ContainsFocusedElement - 遍历可视化树,判断当前控件是否包含获得焦点的元素; GetIsReadOnly...; Translate - 计算起始和终止元素间的坐标移动; EnsureMeasured - 在控件被置于背景层时,需要计算尺寸; SuspendHandler - 暂停处理器的处理; 3.

    58520

    了解模板化控件(10):原则与技巧

    原则 推荐以符合以下原则的方式编写模板化控件: 选择合适的父类:选择合适的父类可以节省大量的工作,从UWP自带的控件中选择父类是最安全的做法,通常的选择是Control、ContentControl、ItemsControl...使用依赖属性:控件的使用者会认为所有控件的属性都是可以绑定的,除非有特殊理由不要破坏这个约定俗成的规则。...如果控件如现有控件功能相同,可以考虑使用Extend-、Advanced-、Simple-做前缀;也可以使用公司名做前缀,譬如ComponentOne公司的C1DataGrid。...结语 这个系列的主旨是讲解常见的模板化控件技术,希望了解这些技术后能更轻松地构造自己的控件,对理解开源控件库的代码也有一定的帮助。...这个系列的内容有很多来自于WPF/Silverlight的经验,虽然有一些小出入,基本上可以用在WPF的自定义控件。

    89330

    Windows Community Toolkit 3.0 新功能

    本文告诉大家一个令人震惊的消息,Windows Community Toolkit 有一个大更新,现在的版本是 3.0 。最大的提升就是 WinForm 和 WPF 程序可以使用部分 UWP 控件。...gaze Api 提供新的包用来写 runtime API 的检查 提供 Microsoft Graph 控件 现有的大量控件 对所有控件支持亮主题和暗主题 性能提升和修改...只需要安装Microsoft.Toolkit.Uwp.Input.GazeInteraction 就可以在 Xaml 使用下面代码,让控件支持视线输入。...如果是从 WPF 迁移代码,只需要修改代码的空间就可以,其他都不需要修改。...如果是 WPF 开发者,那么相信很熟悉 UniformGrid ,但是我还是需要做很小的描述,这个控件不需要定义行列,有很多个单元格,每个单元格的大小相同,而且一个单元格只能放一个控件。

    1.5K10

    开源WPF控件库推荐:ModernWpf

    开源WPF控件库推荐:ModernWpf ModernWpf仓库信息 站长从博客园 林德熙 处了解到此控件库,通过clone、编译、运行,发现这库确实不错,正如 林德熙 所言:“有十分漂亮的界面,整个都是...本人遂从该仓库中将readme搬运过来,希望让更多人知道有这个库的存在,能给WPF开发者多一个UI库选择。 白色主题 快速开始 创建一个WPF应用 从NuGet中安装包 ModernWpfUI....ControlPalette1 Nighttime NumberBox ContentDialog DataGrid ItemsRepeater CustomTitleBar.Dark...Calendar Menu Progress ColorRamp AccentColorPalette HighContrast.png 其他控件库介绍: 国内开源C# WPF控件库Panuon.UI.Silver...推荐 《Dotnet9》系列-开源C# WPF控件库3《HandyControl》强力推荐 (四)开源C# WPF控件库《AduSkin – UI》

    1.2K10

    盘点7个开源WPF控件

    盘点7个WPF控件,有窗口托拉拽控件、Excel控件、列表排序控件、适合管理系统的一整套UI控件等。...支持控件有:ListBox、ListView、TreeView和DataGrid、及其他ItemsControl。...它基于WPF框架和XAML技术,采用了现代UI设计理念,可以帮助开发者创建具有吸引力和易用性的应用程序。 支持自定义主题风格,支持自定义控件的大小。...4、可托拉拽的WPF选项卡控件,强大好用! 项目简介 这是一个基于WPF开发的,可扩展、高度可定制、轻量级的UI组件,支持拖拉拽功能,可以让开发人员快速实现需要选项卡窗口的系统。...UI控件齐全,并且支持自定义主题颜色、字体等。 核心组件 除了包含标准的控件主题外,该套件还包含了一些常用的控件:时钟、对话框、浮动按钮、卡片、齐全图标等。

    2.3K20

    WPF面试题大全,秒杀面试官必备

    与此同时,桌面端WPF和WinForm应用的招聘需求增加,尤其是WPF。前段时间,联想还招聘WPF开发岗位。本文分享了一些WPF面试题,供大家参考。先列出试题,大家先试做一下,后面给出参考答案。...12、C#中的表单界面上,有一个DataGrid控件,如何将SQL数据库里的一个表中的数据显示在这个控件上,请描述一下操作方法及步骤 ? 13、解释完整的WPF对象层次结构 ?..."的DataGrid控件,并自动根据数据源生成列。...这将使DataGrid显示查询结果中的数据。 运行应用程序,DataGrid控件将显示来自SQL数据库表的数据。 以上代码仅供参考,根据项目的实际情况来调整。 13、解释完整的WPF对象层次结构 ?...要想面试得心应手,还需要不断提高自己的基础知识,并了解最新的技术方向。

    90310

    介绍一款最受欢迎的.NET 开源UI库

    概述 今天要带大家了解的是一款WPF的开源控件库MahApps.Metro。MahApps.Metro是用于创建现代WPF应用程序的工具包,它许多开箱即用的好东西。...官网学习文档地址:https://mahapps.com/docs/ 风格赏析 Theme有两款,深色和浅色:下面只展示浅色主题 Progress进度条:这里提供了好几款,样式很优雅 datagrid...:表格控件 hamburger Dialogs:消息弹框 用法介绍 看了上面的控件风格,想必有很多小伙伴已经迫不及待想知道这套控件库如何在自己项目中使用了,接下来小编就带你正式体验MahApps.Metro...,您需要将您的普通窗口更改为我们的MetroWindows。...assembly=MahApps.Metro" 或者 xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls" 前台xmal全部代码如下: 您还需要修改窗口文件的代码

    1.6K30

    【愚公系列】2023年10月 WPF控件专题 DataGrid控件详解

    WPF控件可以分为两类:原生控件和自定义控件。原生控件是由Microsoft提供的内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见的标准用户界面元素。...一、DataGrid控件详解WPF中的DataGrid是一个非常强大和灵活的控件,它可用于展示和编辑数据。...DataGrid还有许多其他的属性和方法,可以根据需求进行使用。1.属性介绍WPF中DataGrid控件的常见属性如下:AutoGenerateColumns:是否自动生成列,默认为true。...2.常用场景WPF中DataGrid控件常用场景包括以下几个方面:数据展示:DataGrid控件可以方便地展示数据表格,特别是当数据量比较大时,使用DataGrid可以快速地进行数据查看和筛选。...自定义样式和模板:DataGrid控件可以根据用户需要进行自定义样式和模板,可自由修改表格的外观和布局,使数据的展示更加美观和易于阅读。

    1.2K00

    Newbeecoder.UI新版开源控件库DataGrid使用说明

    用DataGrid控件显示数据和信息的集合。在WPF能自定义外观,单元格,表格头部,字体,颜色等内容。 使用ItemsSource属性进行数据源绑定,绑定任何实现IEnuemerable的数据源。...Microsoft Docs对DataGrid每项功能有详细说明。 在样式中有常见的表格选项,如交替行背景和显示/隐藏标题,网格线和滚动条。...Newbeecoder.UI是一个轻量级和扩展性的开源项目,基于MVVM开发框架,可用来快速搭建WPF应用程序,而无需了解控件内部实现细节,方便扩展更多控件样式以及使用,该项目使用纯C#+WPF开发,易于扩展和集成到开发项目中...只要你的已有系统是使用WPF开发的,你都能够使用Newbeecoder.UI来轻易的开发出你好看的应用程序来集成到你的现有项目之中。...Demo下载: Newbeecoder.UI.zip Newbeecoder.UI控件库根据用户需求开发稳定而高效项目,通过视频来演示控件库整体功能: 视频内容 ​ 在控件库中使用DataGrid很简单

    2.9K30

    是时候将WPF控件库从.Net Framework升级到.NET Core 3.1

    升级到Core的好处 去年中我曾考虑将我的控件库项目Kino.Toolkit.Wpf升级到.NET Core,不过很快放弃了,因为当时.NET Core是预览版,编译WPF还需要使用最新的Visual...但对各种WPF类库/控件库来说情况又不一样了,为了可以满足更多的用户,让控件库可以同时支持.NET Framework和.NET Core十分重要;而且通常类库对其它组件的依赖较少,升级的风险没那么大。...所以要玩.NET Core的WPF,从类库/控件库开始是一个好的选择。...需要注意的是,WPF控件库的升级和其它.NET项目的升级有一点出入,这篇文章的升级方式不一定适合其它.NET Core项目。...")] 其中ThemeInfo指示项目使用默认的Themes\Generic.xaml主题文件,对WPF项目是必不可少。

    4.3K10

    【我们一起写框架】MVVM的WPF框架(五)—完结篇

    前言 这篇文章是WPF框架系列的最后一篇,在这里我想阐述一下我对框架设计的理解。...) => { bool isFilter = true; foreach (FilterProperty pinfo in ComparePropertyList) //循环筛选出来需要比较的属性...这里我编写了一个DataGrid的UI控件,由于这个控件是最复杂的,如果大家能理解这个控件,相信,其他控件也可以信手捏来。 首先,我们先看下UI界面: ?...其实,这里的UI控件编写,只是为大家提供一个思路,毕竟现实中业务所需的控件是千奇百怪的,我们是没办法编写出一个万能控件的。...相关文章: 【我们一起写框架】MVVM的WPF框架(一)—序篇 【我们一起写框架】MVVM的WPF框架(二)—绑定 【我们一起写框架】MVVM的WPF框架(三)—数据控件 【我们一起写框架】MVVM的WPF

    2.3K40

    精通 WPF UI Virtualization

    问题     最近对 OEA 的 TreeGrid 控件进行了比较大的改造,并使用新的控件来替换了系统中所有的 DataGrid 控件。...新的 TreeGrid 控件实现了很多新的功能,(之后会写一篇文章说明),但是最后遗留了一个问题:由于使用它替换了原来的 DataGrid,而 DataGrid 默认是支持 UI Virtualization...而之后的 TreeView 在默认情况下 UIV 处于关闭状态,需要手动打开。 实现 UIV 需要一个对应的 ScollViewer。...(它还有后续的文章:《Data virtualization》,也很不错)。 之前系统中用到的 DataGrid 控件,一旦数据被分组之后,性能异常低下。...上被我们系统选择来实现 TreeGrid 控件的资源:《A Versatile TreeView for WPF》。

    2.4K90

    win10 uwp dataGrid Microsoft.Toolkit.Uwp.UI.Controls.DataGrid表格控件

    Microsoft.Toolkit.Uwp.UI.Controls.DataGrid 这是比较推荐的库,使用也很简单 安装 首先需要通过 Nuget 搜索 Microsoft.Toolkit.Uwp.UI.Controls.DataGrid...安装 界面 xaml: 先引用库 xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls" 然后写 DataGrid,需要的代码很少...也就是不需要写代码就可以自动创建表格,因为默认的 AutoGenerateColumns 就是 true ,如果需要自定义表头,请看下面 自定义 因为大家都不希望显示表头就是属性名,所以需要定义表格 首先需要关闭自动生成...- Windows Community Toolkit DataGrid 表格控件 我们先要知道我说的是哪个?...其实DataGrid就是表格控件,本文就是告诉大家如何做一个UWP 表格控件 一开始我是改ListView,ListView有个问题,就是你设置他的宽度实际是很小,这个如何做?

    2.9K10
    领券