Telerik UI Controls for Windows 8

Telerik UI Controls for Windows 8是一套为创建Windows UWP应用而设计的工具集,开发人员可以将其中所提供的控件应用到Windows UWP应用中。按照4.7.1节介绍的步骤搜索并安装此扩展控件后,当在Visual Studio中打开设计器时, 工具箱窗口中会出现名为Telerik RadControls for Windows 8的工具集,其中包括图表、日期选取器、仪表盘等多种控件,下面将选取其中几种常用的控件进行介绍。

(1)图表控件

在应用中使用图表可以清晰直观的向用户展示业务数据的走势情况,Telerik RadControls for Windows 8工具集中提供了多种样式的图表控件,例如笛卡尔图表、饼状图表、极坐标图表等,开发人员可以根据业务需要选择适合的图表展示业务数据,下面以笛卡尔图表控件为例,来向读者介绍一下RadControls for Windows 8的工具集中图表控件的使用方法。在本示例中将使用笛卡尔图表展示某企业2012年四个季度的房地产销售业务数据。

启动Visual Studio,新建一个Windows UWP的空白应用程序项目,将其命名为CartesianChart。打开MainPage.xaml文件,从工具箱中拖动一个RadCartesianChart控件到设计器当中,并调整控件的大小及位置,Visual Studio会默认在Page标签中添加别名为"Chart"的Telerik.UI.Xaml.Controls.Chart命名空间引用,代码如下所示:

xmlns:Chart="using:Telerik.UI.Xaml.Controls.Chart"

由于并没有定义图表的相关属性,所以此时在设计器的图表控件上会提示没有添加坐标轴信息。在图表上方添加一个TextBlock文本块用来显示图表标题,并将代码编辑器中自动生成的RadCartesianChart元素标签拆分为起始标签与结束标签,在RadCartesianChart元素的起始标签下方为图表添加坐标轴、背景网格以及数据绑定。对界面进行布局后的代码如下所示:

<TextBlock HorizontalAlignment="Left" Margin="506,124,0,0" TextWrapping="Wrap" Text="某企业2012年房地产销售业绩数据表(单位:套)" VerticalAlignment="Top" Height="39" Width="547" FontSize="20"/>

<Chart:RadCartesianChart HorizontalAlignment="Left" Margin="506,154,0,0" VerticalAlignment="Top" Height="331" Width="434">

<!--为图表添加横坐标并定义坐标类型-->

<Chart:RadCartesianChart.HorizontalAxis>

<Chart:CategoricalAxis/>

</Chart:RadCartesianChart.HorizontalAxis>

<!--为图表添加纵坐标并定义坐标类型-->

<Chart:RadCartesianChart.VerticalAxis>

<Chart:LinearAxis/>

</Chart:RadCartesianChart.VerticalAxis>

<!--为图表添加水平垂直双向背景网格-->

<Chart:RadCartesianChart.Grid>

<Chart:CartesianChartGrid MajorLinesVisibility="XY"/>

</Chart:RadCartesianChart.Grid>

<!--为图表绑定数据-->

<Chart:LineSeries ItemsSource="{Binding SourceBinding}">

<!--为图表的横坐标绑定数据-->

<Chart:LineSeries.CategoryBinding>

<Chart:PropertyNameDataPointBinding PropertyName="HorizontalBinding"/>

</Chart:LineSeries.CategoryBinding>

<!--为图表的纵坐标绑定数据-->

<Chart:LineSeries.ValueBinding>

<Chart:PropertyNameDataPointBinding PropertyName="VerticalBinding"/>

</Chart:LineSeries.ValueBinding>

</Chart:LineSeries>

</Chart:RadCartesianChart>

代码首先添加对RadCartesianChart.HorizontalAxis属性元素和RadCartesianChart.VerticalAxis属性元素的设置来为图表添加横坐标与纵坐标,并在属性元素中定义了坐标轴的类型。

笛卡尔图表的坐标轴类型一共有5种,Categorical(绝对数值)、Linear(线形数值)、DateTimeCategorical(日期绝对数值)、DateTimeContinuous(日期连续数值)以及Logarithmic(对数增长数值)。在本示例中的横轴上需要显示四个季度,这里设置横坐标类型为Categorical 类型,纵轴上并不显示具体的坐标值,而是需要显示出数值所在的区间范围所以设置纵坐标为Linear 类型。在RadCartesianChart.HorizontalAxis属性元素中添加CategoricalAxis元素来设置横坐标为Categorical类型,在RadCartesianChart.VerticalAxis属性元素中添加LinearAxis元素来设置纵坐标为Linear 类型。

代码接下来为图表加入了水平和垂直双向的背景网格,以便使用者查看数据。在RadCartesianChart元素中添加RadCartesianChart.Grid属性元素,并在属性元素中设置MajorLinesVisibility属性值为"XY"即可。

代码最后为图表添加数据绑定,通过Binding标记扩展设置图表的ItemsSource属性绑定至绑定源的SourceBinding属性。接着添加对LineSeries.CategoryBinding属性元素的设置来绑定横坐标中的数据,在属性元素中设置绑定源属性为HorizontalBinding。同样,添加对LineSeries.ValueBinding属性元素的设置来绑定纵坐标数据,并在属性元素中设置绑定源属性为VerticalBinding。

接下来编写后台代码,打开MainPage.xaml.cs文件,首先在CartesianChart命名空间下新建两个用于绑定数据的类。下面先看第一个ChartData类的定义,代码如下所示:

public class ChartData

{

public ChartData(object HorizontalBinding, double VerticalBinding)

{

this.HorizontalBinding = HorizontalBinding;

this.VerticalBinding = VerticalBinding;

}

public object HorizontalBinding { get; set; }

public double VerticalBinding { get; set; }

}

在上面的代码中,为ChartData类添加两个属性并命名为HorizontalBinding和VerticalBinding,分别存放图表的横纵坐标数据。

接着定义ChartSource类,并为其添加一个List<ChartData>类型属性SourceBinding,用来将保存有横纵坐标数据的ChartData类的对象绑定至图表中,代码如下所示:

public class ChartSource

{

public List<ChartData> SourceBinding { get; set; }

}

接下来在MainPage构造方法中,初始化要显示的数据并将其与前台定义的图表控件建立绑定,

代码如下所示:

public MainPage()

{

this.InitializeComponent();

List<ChartData> chartData = new List<ChartData>{

new ChartData("第一季度",50),

new ChartData("第二季度",90),

new ChartData("第三季度",150),

new ChartData("第四季度",80),

};

ChartSource chartSource = new ChartSource();

chartSource.SourceBinding = chartData;

this.DataContext = chartSource;

}

在上面的代码中,实例化了一个List<ChartData>类型的对象chartData,并向chartData对象中添加四个包含横纵坐标数据信息的ChartData类对象。接着新建一个ChartSource类的对象chartSource,并将chartData对象赋值给chartSource对象的SourceBinding属性,最后将chartSource对象赋值给页面的DataContext属性即可。

运行程序效果如图4-42所示:

图4-42 笛卡尔图表运行效果

如果想使用柱状图表显示数据,只需将前台代码中的LineSeries元素更改为BarSeries元素即可,显示效果如图4-43所示:

图4-43 柱状图表

(2)仪表盘控件

Telerik RadControls for Windows 8工具集中提供了多种样式的仪表盘控件,如RadLinearGauge(线性仪表盘)和RadRadialGauge(辐射状仪表盘)。下面通过一个示例来介绍其中RadRadialGauge仪表盘的使用方法,在本示例中使用RadRadialGauge控件来显示容器中的储水量,设置容器容积为120吨,当储水量少于30吨时显示处于警戒状态。

启动Visual Studio,新建一个Windows UWP的空白应用程序项目,并命名为GaugeDemo。打开MainPage.xaml文件,从工具箱中拖动一个RadRadialGauge控件到设计器当中,并调整控件的大小及位置,Visual Studio会默认在Page标签中添加别名为"DataVisualization"的Telerik.UI.Xaml.Controls.DataVisualization命名空间引用,代码如下所示:

xmlns:DataVisualization="using:Telerik.UI.Xaml.Controls.DataVisualization"

在仪表盘上方添加一个TextBlock文本块用来显示仪表盘标题,并将代码编辑器中自动生成的RadRadialGauge元素标签拆分为起始标签与结束标签,在RadRadialGauge元素的起始标签下方为仪表盘添加刻度线、指针、标记以及数据绑定。对界面进行布局后的代码如下所示:

<TextBlock HorizontalAlignment="Left" Margin="689,168,0,0" TextWrapping="Wrap" Text="储水量仪表盘" VerticalAlignment="Top" Height="42" Width="258" FontSize="20"/>

<!--定义仪表盘的最大值、刻度间距以及刻度值与表盘中心的距离-->

<DataVisualization:RadRadialGauge MaxValue="120" LabelStep="30" LabelRadiusScale="1.10" HorizontalAlignment="Left" Margin="586,210,0,0" VerticalAlignment="Top" Height="266" Width="512">

<!--分段定义刻度线的样式-->

<DataVisualization:SegmentedRadialGaugeIndicator StartValue="0" Value="120">

<DataVisualization:BarIndicatorSegment Thickness="2" Stroke="Red" Length="30"/>

<DataVisualization:BarIndicatorSegment Thickness="2" Stroke="White" Length="90"/>

</DataVisualization:SegmentedRadialGaugeIndicator>

<!--定义指针样式-->

<DataVisualization:ArrowGaugeIndicator Value="{Binding ExpensePercent}" Thickness="3" Brush="White" DataVisualization:RadRadialGauge.IndicatorRadiusScale="0.83"/>

<!--定义标记样式-->

<DataVisualization:MarkerGaugeIndicator Value="{Binding ExpensePercent}" Foreground="#787878">

<DataVisualization:MarkerGaugeIndicator.Content>

<Ellipse Width="20" Height="20" Fill="White"></Ellipse>

</DataVisualization:MarkerGaugeIndicator.Content>

</DataVisualization:MarkerGaugeIndicator>

</DataVisualization:RadRadialGauge>

代码首先在RadRadialGauge元素的起始标签中为RadRadialGauge控件定义了几个属性,MaxValue属性用于设置仪表盘的最大值,这里设置为120;LabelStep属性用于设置仪表盘上每一个刻度之间的间隔,这里设置为30;LabelRadiusScale属性定义了刻度与仪表盘正中心的距离,它是刻度值和表盘中心距离与刻度线和表盘中心距离之比,如果设置该属性值为1.00,刻度值将正好显示在刻度线上,这里希望刻度值显示在刻度线的外侧,所以设置该属性值为1.10。

接下来在RadRadialGauge元素中添加SegmentedRadialGaugeIndicator元素来定义表盘的刻度线,在SegmentedRadialGaugeIndicator元素的起始标签中设置刻度线的起始值和末尾值为0和120,并添加两个BarIndicatorSegment子元素分段设置刻度线的颜色,在本示例中当显示的数值小于30时处于警戒状态,所以在第一个BarIndicatorSegment元素中设置刻度线长度为30(0至30范围内),颜色为红色,在第二个BarIndicatorSegment元素中设置刻度线长度为90(30至120范围内),颜色为白色。

代码继续添加ArrowGaugeIndicator元素来定义一个仪表盘指针,在这个元素中设置指针有如下几个属性:

  • Value属性,Value属性用来设置指针指示的数值,设置指针的Value属性绑定数据源的ExpensePercent属性。
  • IndicatorRadiusScale属性,表示指针长度与表盘半径之比,这里将其设置为0.83。
  • Thickness和Brush属性,设置指针的宽度和颜色。

代码的最后添加了MarkerGaugeIndicator元素在刻度线上设置一个标记,用来表示当前指针指示的数值。在MarkerGaugeIndicator元素的起始标签中设置标记的Value属性绑定数据源的ExpensePercent属性,接着添加对MarkerGaugeIndicator.Content属性元素的设置来定义标记的样式,这里在属性元素中定义标记为一个椭圆,并且设置它的大小和颜色。

接下来编写后台代码,打开MainPage.xaml.cs文件,GaugeDemo命名空间下定义GaugeDate类并为其添加ExpensePercent属性来为仪表盘控件提供数据,代码如下所示:

public class GaugeDate

{

public double ExpensePercent { get; set;}

}

在MainPage构造方法中实例化一个GaugeDate类的对象gaugeDate,将其ExpensePercent属性赋值为40,并将gaugeDate对象赋值给页面的DataContext属性,代码如下所示:

public MainPage()

{

this.InitializeComponent();

GaugeDate gaugeDate = new GaugeDate ();

gaugeDate.ExpensePercent = 40;

this.DataContext = gaugeDate;

}

运行程序,可以看到此时指针指示的数值为40,效果如图4-44所示:

图4-44显示效果

还可以选择其他样式的指针来显示数据,比如将前台代码中定义指针样式时使用的ArrowGaugeIndicator元素替换成RadialBarGaugeIndicator元素,仪表盘显示效果如图4-45所示:

图4-45 RadialBarGaugeIndicator样式指针

(3)日期选取控件

日期选取控件用来为用户提供快捷的选取日期功能,并且可以根据需求设置日期显示的格式,下面通过一个示例来介绍日期选取控件的使用方法,在本示例中添加了一个日期选取控件,用来模拟选择会议的日期。

启动Visual Studio,新建一个Windows UWP的空白应用程序项目,并命名为DatePickerDemo。打开MainPage.xaml文件,从工具箱中拖动一个RadDatePicker控件到设计器当中,Visual Studio会默认在Page标签中添加别名为"Input"的Telerik.UI.Xaml.Controls.Input命名空间引用,代码如下所示:

xmlns:Input="using:Telerik.UI.Xaml.Controls.Input"

接着在RadDatePicker元素中定义日期选取控件的标题、日期显示格式以及默认显示日期,代码如下所示:

<Input:RadDatePicker Header="选择会议日期:" HorizontalAlignment="Left" Margin="459,188,0,0" VerticalAlignment="Top" DisplayValueFormat="yyyy, MMMM dd, dddd" Value="{Binding MeetingDate}"/>

上面的代码在RadDatePicker元素中定义了如下几个属性:

接下来在MainPage.xaml.cs文件中的DatePickerDemo命名空间中定义一个BookDate类,并为其添加DateTime类型属性MeetingDate来为日期选取控件提供数据,代码如下所示:

public class BookDate

{

public DateTime MeetingDate{get;set;}

}

在MainPage构造方法中定义日期选取控件的默认显示日期,定义一个BookDate类的对象bookDate,并实例化一个DateTime类的对象赋值给bookDate的MeetingDate属性,作为日期选取控件的默认显示日期。最后将bookDate赋值给前台界面的DataContext属性即可。代码如下所示:

public MainPage()

{

this.InitializeComponent();

var bookDate= new BookDate();

bookDate.MeetingDate = new DateTime(2012, 7, 11);

this.DataContext = bookDate;

}

运行程序,显示默认日期为MeetingDate属性的值,如图4-46所示:

图4-46 默认显示日期

展开控件的选取日期界面,选择日期后结果会按照需要的格式显示在控件中,如图4-47所示。

(1)日期选取界面

(2)日期选取结果

图4-47 日期选取界面及显示结果

以上简单介绍了Telerik RadControls for Windows 8工具集中的几种常用控件的使用方法,读者可以继续研究更多的扩展控件,来丰富应用程序的界面及功能。

Win10系列:C#应用控件基础23的更多相关文章

  1. Win10系列:JavaScript 控件的使用

    向页面中添加的控件可分为两种类型:标准的HTML控件和WinJS库控件.其中标准的HTML控件是指HTML标准中定义的基本控件,如按钮和复选框:WinJS库控件是为开发基于JavaScript 的Wi ...

  2. WPF从我炫系列4---装饰控件的用法

    这一节的讲解中,我将为大家介绍WPF装饰控件的用法,主要为大家讲解一下几个控件的用法. ScrollViewer滚动条控件 Border边框控件 ViewBox自由缩放控件 1. ScrollView ...

  3. WPF 模仿 UltraEdit 文件查看器系列一 用户控件

    WPF 模仿 UltraEdit 文件查看器系列一 用户控件 运行环境:Win10 x64, NetFrameWork 4.8, 作者:乌龙哈里,日期:2019-05-10 章节: 起步 添加用户控件 ...

  4. C#控件系列--文本类控件

    C#控件系列--文本类控件         文本类控件主要包含Label.LinkLabel.Button.TextBox以及RichTextBox. Label 功能         Label用来 ...

  5. 重新想象 Windows 8 Store Apps (17) - 控件基础: Measure, Arrange, GeneralTransform, VisualTree

    原文:重新想象 Windows 8 Store Apps (17) - 控件基础: Measure, Arrange, GeneralTransform, VisualTree [源码下载] 重新想象 ...

  6. 重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试

    原文:重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试 [源码下载] 重新想象 Windows 8 Store ...

  7. WPF编游戏系列 之四 用户控件

    原文:WPF编游戏系列 之四 用户控件        在上一篇<WPF编游戏系列 之三 物品清单>中,对物品清单进行了演示,其中反复用到了同一组控件(如下图),而且 颜昌钢也指出在3.2. ...

  8. Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView、TTreeViewItem

    Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView.TTreeViewItem TScrollBox -> TCustomTreeView -> ...

  9. Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid、TGrid

    Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid.TGrid TStringGrid.TGrid 都是从 TCustomGrid 继承; 区别有:1 ...

随机推荐

  1. Jenkins Pipeline脚本

    node { echo 'Hello World' } node 在Jenkins环境中分配一个执行器和工作空间. echo 在控制台输出中写入简单的字符串 try { timeout(time: 1 ...

  2. Java发送邮件功能

    package com.hd.all.test.testjava; import java.util.Properties; import javax.mail.Address; import jav ...

  3. 【LeetCode每天一题】Word Search(搜索单词)

    Given a 2D board and a word, find if the word exists in the grid.The word can be constructed from le ...

  4. 揭开yield关键字的神秘面纱

    写在前言 经常会看见,python函数中带有yield关键字,那么yield是什么,有什么作用? 答案:可以理解yield是一个生成器: 作用:遇到yield关键字,函数会直接返回yield值,相当于 ...

  5. Eureka服务注册与发现

    一.服务注册 注册Eureka的服务非常的简单,只需要引入spring-cloud-starter-netflix-eureka-client的jar包即可. <dependency> & ...

  6. scanperiod 不生效

    注意:要改 target 目录下的,真正运行时加载的 logback-spring.xml

  7. sass用法快速入门

    1.@mixin用法 (混合样式)    2.定义变量用$  (可作为全局变量使用) 命名规范 —— 遵守语义化命名:lg-大号.md-中号.base-基本号.sm-小号.mini-超小号 $font ...

  8. mysql日志介绍

    1. 错误日志 错误日志记录的事件: a. 服务器启动关闭过程中的信息 b. 服务器运行过程中的错误信息 c. 事件调试器运行一个事件时间生的信息 d. 在从服务器上启动从服务器进程时产生的信息 2. ...

  9. HTTP1.0、HTTP1.1 和 HTTP2.0 的区别

    一.HTTP的历史 早在 HTTP 建立之初,主要就是为了将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器.也是说对于前端来说,我们所写的HTML页面将要放在我们的 web 服务器上 ...

  10. 【转载】Selenium WebDriver的简单操作说明

    转载自:http://blog.csdn.net/xiao190128/article/details/49784121 1.打开一个测试浏览器 对浏览器进行操作首先需要打开一个浏览器,接下来才能对浏 ...