首页
学习
活动
专区
工具
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

89320
  • 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.

    57220

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

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

    88330

    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控件齐全,并且支持自定义主题颜色、字体等。 核心组件 除了包含标准控件主题外,该套件还包含了一些常用控件:时钟、对话框、浮动按钮、卡片、齐全图标等。

    1.7K20

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

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

    66610

    介绍一款最受欢迎.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全部代码如下: 您还需要修改窗口文件代码

    98630

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

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

    4.2K10

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

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

    1.1K00

    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

    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

    精通 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

    Windows Community Toolkit 4.0 - DataGrid - Part03

    概述 在上面一篇 Windows Community Toolkit 4.0 - DataGrid - Part02 中,我们针对 DataGrid 控件 Utilities 部分做了详细分享。...而在本篇,我们会对控件中最重要 DataGrid 文件夹中类做详细分享。...DataGrid 控件最重要功能,首先我们还是先来看一下类结构: 包括了 Automation;DataGrid,DataGridColumn,DataGridRow,DataGridCell 控件实现...接着我们看几个重要类和方法: 1. DataGrid.cs 这个类是 DataGrid 控件主要处理类,功能也是比较复杂,单个类代码行数是 9001 行,我们只挑两个方法来看一下。...接下来我们会就 DataGrid 控件各种编辑功能,各种自定义功能等做进一步使用方式分享。

    56920
    领券