由于提供的主题机制,在使用 NoXAML 二进制文件时自定义 Telerik 控件的外观和样式既简单又直观,要记住的一个重要步骤是始终将自定义样式基于主题的默认样式。

获取Telerik UI for WPF官方最新版

基于主题默认样式的自定义样式

创建针对特定控件的样式时,应基于主题提供的默认样式。 通过这种方式,您将确保所有属性(除了已更改的属性)都继承自默认样式。

我们遵循了一个命名约定,其中每个控件默认样式的键由控件名称后跟"Style" 后缀组成。 这意味着 RadGridView 控件的默认样式是 x:Key="RadGridViewStyle",RadComboBox 的默认样式是 x:Key="RadComboBoxStyle" 等,示例 1 显示了如何基于 RadComboBox 控件的默认设置:

示例 1:RadComboBox 的自定义样式

XAML

<Style x:Key="CustomStyle" TargetType="telerik:RadComboBox" BasedOn="{StaticResource RadComboBoxStyle}">
<Setter Property="Foreground" Value="Green" />
</Style><Style TargetType="telerik:RadComboBox" BasedOn="{StaticResource RadComboBoxStyle}">
<Setter Property="Foreground" Value="Red" />
</Style>

注意:Telerik主题还带有一些 MS 原生控件的样式,如 TextBox、CheckBox、Button 等。如果您想自定义这些控件的样式并保持 Telerik 主题,您可以使用与 Example1 相同的原则。 例如,TextBox 样式的 x:Key 是 TextBoxStyle。

样式自定义控件

请注意,自定义控件不会自动接收继承控件的样式,您必须将自定义样式基于继承控件的默认样式。

示例 2:为自定义控件添加样式

XAML

<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Themes/System.Windows.xaml" />
<ResourceDictionary Source="Themes/Telerik.Windows.Controls.xaml" />
<ResourceDictionary Source="Themes/Telerik.Windows.Controls.GridView.xaml" />
<ResourceDictionary Source="Themes/Telerik.Windows.Controls.Input.xaml" />
</ResourceDictionary.MergedDictionaries>
<Style TargetType="local:MyCustomGrid" BasedOn="{StaticResource RadGridViewStyle}" />
</ResourceDictionary>
</Application.Resources>

然后您需要设置控件的 DefaultStyleKey。

示例 3:设置用于样式化自定义控件的 DefaultStyleKey

C#

public class MyCustomGrid : RadGridView
{
public MyCustomGrid()
{
this.DefaultStyleKey = typeof(MyCustomGrid);
}
}

VB.NET

Public Class MyCustomGrid
Inherits RadGridView
Public Sub New()
Me.DefaultStyleKey = GetType(MyCustomGrid)
End Sub
End Class

控件样式依赖项

示例 4 列出了与 Telerik 程序集对应的 XAML 文件以及它们之间的依赖关系。

注意:如果您使用 .NET Core,请注意必须使用 Telerik.Windows.Controls.RichTextBox.xaml 替代 Telerik.Windows.Documents.xaml 和 Telerik.Windows.Controls.RichTextBoxUI.xaml。

示例 4:与 Telerik 程序集对应的所有 XAML 文件

XAML

<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries><!-- Telerik.Windows.Controls is used by all assemblies -->
<ResourceDictionary Source="Themes/Telerik.Windows.Controls.xaml" /><ResourceDictionary Source="Themes/System.Windows.xaml" />
<ResourceDictionary Source="Themes/Telerik.Windows.Controls.Input.xaml" /><!-- Requires: System.Windows.xaml -->
<ResourceDictionary Source="Themes/Telerik.Windows.Controls.Navigation.xaml" /><ResourceDictionary Source="Themes/Telerik.Windows.Controls.Chart.xaml" /><!-- Requires: Telerik.Windows.Controls.Input -->
<ResourceDictionary Source="Themes/Telerik.Windows.Controls.Data.xaml" /><ResourceDictionary Source="Themes/Telerik.Windows.Controls.DataVisualization.xaml" /><!-- Requires: Telerik.Windows.Controls.Navigation -->
<ResourceDictionary Source="Themes/Telerik.Windows.Controls.Docking.xaml" /><ResourceDictionary Source="Themes/Telerik.Windows.Controls.Expressions.xaml" /><ResourceDictionary Source="Themes/Telerik.Windows.Controls.FixedDocumentViewers.xaml" /><!-- Requires: Telerik.Windows.Controls.Input -->
<ResourceDictionary Source="Themes/Telerik.Windows.Controls.GridView.xaml" /><ResourceDictionary Source="Themes/Telerik.Windows.Controls.ImageEditor.xaml" /><!-- Requires: Telerik.Windows.Controls.Input, Telerik.Windows.Controls.Navigation -->
<ResourceDictionary Source="Themes/Telerik.Windows.Controls.RibbonView.xaml" /><ResourceDictionary Source="Themes/Telerik.Windows.Controls.RichTextBoxUI.xaml" /><!-- Requires: System.Windows, Telerik.Windows.Controls.Input, Telerik.Windows.Controls.Navigation -->
<ResourceDictionary Source="Themes/Telerik.Windows.Controls.ScheduleView.xaml" /><!-- Requires: Telerik.Windows.Controls.Input, Telerik.Windows.Controls.Navigation -->
<ResourceDictionary Source="Themes/Telerik.Windows.Documents.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>

Telerik UI for WPF | 下载试用

Telerik UI for WPF拥有超过100个控件来创建美观、高性能的桌面应用程序,同时还能快速构建企业级办公WPF应用程序。UI for WPF支持MVVM、触摸等,创建的应用程序可靠且结构良好,非常容易维护,其直观的API将无缝地集成Visual Studio工具箱中。


了解最新Kendo UI最新资讯,请关注Telerik中文网!

WPF界面工具Telerik UI for WPF入门级教程 - 样式控件相关推荐

  1. 界面组件Telerik UI for WPF全新的Windows 11主题,一起来探索

    Telerik UI for WPF最新版添加了全新的Windows 11主题,来探索对Windows 11视觉上的演变.其中内置浅色.深色的变化.基于默认操作系统应用程序模式的切换变化.使用操作系统 ...

  2. WPF界面控件Telerik UI for WPF初级入门教程 - 入门指南

    本文主要介绍如何在项目中获取Telerik UI for WPF控件,并开始快速使用它们.启动并运行第一个简单控件后,请查看后续步骤部分,开始更详细地探索控件功能. 点击获取工具下载 使用Teleri ...

  3. WPF界面控件Telerik UI for WPF新手入门教程 - 如何添加telerik控件

    本教程将介绍执行哪些步骤才能在应用程序中添加Telerik UI for WPF控件. 有两种方法可以做到这一点 - 第一种是为 VisualStudio 安装 Progress Telerik WP ...

  4. Telerik UI for WPF 2023 R1

    Telerik UI for WPF 2023 R1 之 WPF 的 Telerik 用户界面,WPF 控件库开发人员信任,快速构建美观.高性能的 WPF 业务应用程序.现在支持 .NET 6 和 7 ...

  5. PyQt5 图形界面 - 配置界面跟随窗口大小调整灵活伸缩,设置页面控件居中显示实例演示

    PyQt5 图形界面 - 配置页面跟随窗口大小调整灵活伸缩 第一章:Qt 窗口布局调整演示 ① 不可自由伸缩实例 ② 分散布局合并 ③ 添加间隔控件 ④ 添加栅格布局 ⑤ 修改栅格布局为 QFrame ...

  6. Winform中怎样在工具类中对窗体中多个控件进行操作(赋值)

    场景 需求是在窗体加载完成后掉用工具类的方法,工具类中获取窗体的多个控件对象进行赋值. 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 ...

  7. Android 9.0 去除锁屏界面及SystemUI无sim卡拨打紧急电话控件显示功能实现

    1.1概述 在9.0的系统rom定制化开发中,关于SystemUI的定制化功能也是比较多的,在SystemUI的锁屏页面和状态栏提示无sim卡拨打紧急电话控件显示等相关提示 的功能中,在有些syste ...

  8. 界面控件Telerik UI for WinForms入门教程 - Telerik Upgrade API Analyzer

    针对Telerik UI for WinForms的每个版本,技术团队都尽量避免引入影响公共 API 的更改.但是有时需要进行此类更改才能使产品发展,这可能会导致应用程序升级到最新的 Telerik ...

  9. 界面组件Telerik UI for WinForms R1 2023——全新的Windows 11主题

    Telerik UI for WinForms拥有适用Windows Forms的110多个令人惊叹的UI控件.所有的UI for WinForms控件都具有完整的主题支持,可以轻松地帮助开发人员在桌 ...

最新文章

  1. 超车新势力齐聚港股,谁主沉浮?
  2. 查画图linux进程,分享|6 款面向 Linux 用户的开源绘图应用程序
  3. 【Raspberry Pi】定时运行python程序读温湿度传感器数据发邮件
  4. java判断星期天_java实现一个月的最后一个星期天
  5. weifenluo与notifyIcon小细节
  6. 机器学习——支持向量机SVM之多分类问题
  7. poj 2031Building a Space Station(几何判断+Kruskal最小生成树)
  8. 12010.linux应用程序之spi
  9. Unable to establish a connection to Redis Cluster at [RedisURI
  10. 宁夏计算机科学与技术产业发展新趋势,2021年CCF数据库发展战略研讨会在宁夏银川顺利召开...
  11. 卷积的定义,知乎上有个很有名的段子:
  12. html简单实现下拉菜单
  13. php网页代码字体大小,HTML网页字体大小的设置
  14. 预约小程序开发:小程序开发的费用都包含了哪些?
  15. 使用蒲公英工具箱获取设备 UDID
  16. 弘辽科技:为什么手淘推荐流量突然增加?
  17. Python爬虫实战——Quora网站文字自动化爬取和正则匹配筛选信息
  18. xbox手柄电脑怎么测试软件,win10电脑怎么连接xbox手柄?win10电脑连接xbox手柄的详细步骤...
  19. 个人认为安卓开发前景
  20. 识别图片中的文字(ocr)

热门文章

  1. 空间分析:3-3.geoda计算莫兰指数
  2. AD域账户删除记录追查
  3. 初入职场新人一定要知道的五大晋升秘诀
  4. 1. Android逆向-Frida环境搭建
  5. 圆通电子面单账户开通申请流程(快递鸟示例)
  6. A2DP:蓝牙耳机回连失败(播放音乐过程中,打开之前已配对的蓝牙耳机进行回连,耳机与测试机的媒体音频连接失败)
  7. 【心灵鸡汤】为撒要爱惜自己的羽毛
  8. FAN(Understanding The Robustness in Vision Transformers)论文解读,鲁棒性和高效性超越ConvNeXt、Swin
  9. python 发送邮件_利用Python 发送邮件
  10. 给你讲一个只有程序员才能听懂的笑话