外链论坛

 找回密码
 立即注册
搜索
查看: 9|回复: 1

界面组件Telerik UI for WPF入门级教程 - 编辑控件模板(一)

[复制链接]

2952

主题

330

回帖

9919万

积分

论坛元老

Rank: 8Rank: 8

积分
99199392
发表于 2024-10-6 09:03:01 | 显示全部楼层 |阅读模式

本文重点演示了怎样提取和编辑Telerik UI for WPF的默认控件模板的两种办法

Telerik UI for WPF官方最新版免费下载试用,历史版本下载,在线文档和帮忙文件下载-慧都网

从主题XAML文件中手动提取控件模板

所有控件拥有区别主题的 XAML 文件位置于 Themes.Implicit 文件夹中。您能够在 Telerik UI for WPF 安装目录中找到此文件夹,例如 C:\Program Files (x86)\Progress\Telerik UI for WPF R2 2021\Themes.Implicit。

重视:从 2021 R2 发布版本起始,文件夹 WPF40 的名叫作更改为 WPF。 文件夹中的 .xaml 文件适用于 .NET Framework 4.0 和 .NET Framework 4.5,引入了一个名为 NetCore 的文件夹,它针对 .NET Core 3.1、.NET 5 和 .NET 6 框架。

以下示例表示怎样为 Office_Black 主题提取 RadListBox 控件模板:

导航到 Telerik UI for WPF 安装目录并打开 Themes.Implicit\WPF\OfficeBlack\Themes 文件夹。您能够选取 WPF 文件夹中的任何可用主题,文件夹名叫作对应于主题名叫作找到 Telerik.Windows.Controls.xaml 文件并运用爱好的编辑器打开它。若要查询任何控件的 XAML 文件,您需要晓得包括该控件的程序集名叫作,XAML 文件的名叫作对应于程序集的名叫作

图 1:导航到所需的 XAML 文件

重视:始终从您在应用程序中运用的主题中提取所需的控件模板。例如,倘若您的应用程序运用 Office Black 主题,请从 Themes.Implicit\WPF\OfficeBlack\Themes 文件夹中提取控件模板。 每一个主题的控件模板都区别运用错误的模板可能会引起错误或不良操作。

在编辑器中,找到 RadListBox 控件的默认样式,它被叫作为 RadListBoxStyle。默认样式遵循控件+样式的约定名叫作,例如,RadListBoxStyle。在 RadListBoxStyle 下,导航到 Template 属性设置器的值,它指向控件模板。从 XAML 文件复制 RadListBox 控件模板。

复制模板后,您能够修改它并将其应用到控件的单个实例或全部应用程序,办法是创建所需的样式并设置其 Template 属性。

重视:更改掌控模板时,您必须包含所有必需的部分。 即使您的代码能够编译,某些功能可能会因为省略所需的部分而受到影响,所需部件标有前缀“PART_”。

要在 RadListBox 控件周边添加圆形红色边框,请根据以上过程提取控件模板。 而后修改掌控模板,如下面的示例 1 所示。

示例 1:在 RadListBox 控件周边添加边框

XAML

<Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="/Telerik.Windows.Themes.Office_Black;component/Themes/Telerik.Windows.Controls.xaml"/> </ResourceDictionary.MergedDictionaries> <Style BasedOn="{StaticResource RadListBoxStyle}" TargetType="telerik:RadListBox"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="telerik:RadListBox"> <Grid> <ScrollViewer x:Name="PART_ScrollViewer" Margin="0" Padding="{TemplateBinding Padding}" Bac公斤round="{TemplateBinding Bac公斤round}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" IsTabStop="False" HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}" VerticalScrollBarVisibility="{TemplateBinding ScrollViewer.VerticalScrollBarVisibility}"> <!-- Here is the additional Border --> <Border CornerRadius="10" BorderBrush="Red" BorderThickness="1"> <ItemsPresenter/> </Border> <ScrollViewer.InputBindings> <KeyBinding Command="telerikPrimitivesistControl.SelectAllCommand" Key="A" Modifiers="Control"/> </ScrollViewer.InputBindings> </ScrollViewer> <ContentPresenter x:Name="PART_DropVisualPlaceholder" Visibility="Collapsed" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style> </ResourceDictionary> </Application.Resources>

图 2:带有红色边框的 RadListBox 控件

Telerik UI for WPF

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

回复

使用道具 举报

3046

主题

2万

回帖

9909万

积分

论坛元老

Rank: 8Rank: 8

积分
99098928
发表于 2024-10-9 12:51:19 | 显示全部楼层
感谢你的精彩评论,带给我新的思考角度。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|外链论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-9 02:54 , Processed in 0.071056 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.