当前位置: 首页 > 使用教程

Telerik UI for WPF入门级教程:如何设置一个主题?(二)

发布时间:2021-12-07

Telerik UI for WPF R3 2021 SP1最新版

如何获取合并所需的 .xaml 文件

您可以在两个地方找到所有需要的 .xaml 文件,分别可以使用两种方法在项目中引用它们。

Reference theme dll

主题的所有样式和模板都封装在位于/Binaries.NoXaml/ folder (Telerik.Windows.Themes.Material.dll, Telerik.Windows.Themes.Office2016.dll等)中的主题dll中,要获取特定主题的样式,您可以直接从主题程序集中合并其 ResourceDictionaries。例如,如果您使用 Office_Black 主题,则应添加对 Telerik.Windows.Themes.Office_Black.dll 的引用,然后合并所需的 .xaml 文件,如示例 1 所示。

注意:我们推荐这种方法,因为升级和维护更容易。 如果您有高度自定义的控件或者您只使用几个控件并且不想包含具有所有样式的 dll,则另一个(复制 XAML 文件)会更好。

将XAML文件复制到应用程序的专用文件夹中

每个主题的默认样式和资源也在/Telerik UI for WPF installation folder/Themes.Implicit文件夹中提供,为了为您的应用程序应用某个主题,您可以从应用程序文件夹中的相应主题文件夹(取决于您使用的控件集)复制所有必需的 XAML 文件,然后合并应用程序的 MergedDictionaries 集合中的 ResourceDictionaries。您应该合并与您的项目中的每个程序集引用相对应的所有 .xaml 文件,如示例 2 和图 1 所示。

图 1:将所需的 XAML 文件复制到应用程序的单独文件夹中

界面控件Telerik UI for WinForm初级教程 - 版本升级

示例 2:应用程序资源中的 MergedDictionaries:

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.Input.xaml”/>
<ResourceDictionary Source=”/Themes/Telerik.Windows.Controls.GridView.xaml”/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>

提示:如果您为项目引用中缺少的 dll 合并 ResourceDictionary,则会发生错误。

警告:使用隐式样式时,不应使用 StyleManager 设置应用程序主题。

注意:如果您在项目中复制 .xaml 文件,请确保它们的 Build Action 设置为 Page。

使用 StyleManager 设置主题

StyleManager在使用标准 (Xaml) dll 时使用,StyleManager 是一个类,它根据设置的主题在 Telerik 控件上应用不同的样式,它允许您在控件级别和应用程序级别设置主题。

要通过 StyleManager 更改主题,您需要执行以下几个步骤。

1. 参考Telerik UI for WPF dlls的 Xaml 版本,它们可以在/Telerik UI for WPF installation folder/Binaries/文件夹中找到。

2. 在要设置主题的控件上设置 StyleManager.Theme 附加属性,或者在调用视图或App.xaml.cs文件的InitializeComponent方法之前设置StyleManager.ApplicationTheme静态属性,这将为所有 Telerik 控件全局设置主题。

示例 3:在控件级别设置主题

C#

StyleManager.SetTheme(radControlInstance, new Office2016Theme());

VB.NET

StyleManager.SetTheme(radControlInstance, New Office2016Theme())

示例 4:在应用程序级别设置主题

C#

StyleManager.ApplicationTheme = new Office2016Theme();
InitializeComponent();

VB.NET

StyleManager.ApplicationTheme = New Office2016Theme()
InitializeComponent()

警告:不支持在使用 StyleManager(混合隐式样式主题和 StyleManager)时合并主题资源字典,仅对 Xaml dll 使用 StyleManager,或仅对 NoXaml 二进制文件使用隐式样式。

注意:不支持通过设置 StyleManager.ApplicationTheme 在运行时切换全局主题,要启用此功能,请使用 NoXaml dll 和隐式样式主题。

更改颜色变化

一些 Telerik 主题支持调色板,其中包含相关主题的资源。 一些调色板具有不同的颜色变化,可以使用 LoadPreset 方法进行更改。

示例 5:更改主题的颜色变化

C#

//default color variation
GreenPalette.LoadPreset(GreenPalette.ColorVariation.Dark);

VB.NET

//default color variation
GreenPalette.LoadPreset(GreenPalette.ColorVariation.Dark)

主题会影响所有 WPF 控件吗?

所有主题都专门设计用于设计 Telerik 控件,但是一些本机Microsoft WPF控件也受主题机制的影响。

Telerik UI for WPF | 下载试用

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

更多产品正版授权详情及优惠,欢迎咨询在线客服>>


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

慧都年终活动火热开启
扫码咨询
电话咨询
023-68661681
返回
顶部