[Windows 8 App]Telerik UI Controls-----圖表控制項

[Windows 8 App]Telerik UI Controls-----圖表控制項

Telerik UI Controls是一套位Windows 應用商店應用而設計的工具

我們需要下載安裝【Telerik UI Controls】

下載和安裝可以參考:

[Windows 8 App]安裝擴充功能和更新-----Telerik UI Controls(上)

[Windows 8 App]安裝和設定Telerik UI Controls(下)

上面這二篇文章

 

安裝完畢後,可以新增專案,打開工具箱

在工具箱中會出現【Telerik RadControls for Windows 8.1 2013 Q3 SP1】底下有很多的控制項

其中包括{圖表、日期選擇器、儀表盤等等}

 

這裡我們介紹【圖表控制項】

 

圖表控制項提供了多種樣式的圖表,例如笛卡爾圖表、餅狀圖表等等...

這裡我們介紹笛卡爾圖表控制項的使用

 

新增一個Visual Studio 2013的專案,建立一個空白的應用市集專案,命名為【CartesianChart】

開啟【MainPage.xaml】,從【工具箱】拉一個【RadCartesianChart】的控制項到設計中

可以看到,把【RadCartesianChart】控制項拉近設計畫面中後,在【MainPage.xaml】的程式碼中會多這一行


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

再來,我們新增一個TextBlock的控制項來顯示表題

我們來看完整的【MainPage.xaml】的程式碼,下面會做介紹


<Page
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:CartesianChart"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:Chart="using:Telerik.UI.Xaml.Controls.Chart"
    x:Class="CartesianChart.MainPage"
    mc:Ignorable="d">

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <TextBlock HorizontalAlignment="Left" Margin="150,43,0,0" TextWrapping="Wrap" Text="某企業2012年房地產銷售業績數據表(單位:套)" VerticalAlignment="Top" Height="72" Width="1065" FontSize="50"></TextBlock>
        
        <Chart:RadCartesianChart HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,115,0,0" Height="643" Width="1346">
            
            <!--為圖表添加橫坐標並且定義座標的類型-->
            <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>

    </Grid>
</Page>

 

在16行至24行,是對RadCartesianChart.HorizontalAxis屬性元素和RadCartesianChart.VerticalAxis屬性元素的設置來為圖表添加橫坐標與縱坐標

橫坐標類型為【Categorical】

下面這行是為圖表加入水平和垂直的背景格子,方便使用者查看數據


<Chart:CartesianChartGrid MajorLinesVisibility="XY" />

最後,下面的圖表是為縱坐標和橫坐標做繫結綁定數據


<!--為圖表的橫坐標繫結綁定數據-->
<Chart:LineSeries.CategoryBinding>
   <Chart:PropertyNameDataPointBinding PropertyName="HorizontalBinding" />
</Chart:LineSeries.CategoryBinding>

<!--為圖表的縱坐標繫結綁定數據-->
<Chart:LineSeries.ValueBinding>
   <Chart:PropertyNameDataPointBinding PropertyName="VerticalBinding" />
</Chart:LineSeries.ValueBinding>

 

再來要編寫後台的程式碼,打開【MainPage.xaml.cs】

在CartesianChart的命名空間下新建兩個綁定數據的類別


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; }
}

上面的程式碼中,HorizontalBinding和VerticalBinding分別存放圖表的橫坐標和縱座標數據

 

下面的程式碼是新增一個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;
}

 

【MainPage.xaml.cs】的完整程式碼


using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;

// 空白頁項目範本已記錄在 http://go.microsoft.com/fwlink/?LinkId=234238

namespace CartesianChart
{
    /// <summary>
    /// 可以在本身使用或巡覽至框架內的空白頁面。
    /// </summary>
    public sealed partial class MainPage : Page
    {
        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;

        }
        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; }
        }

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

執行專案的畫面:

236

 

如果要把線性轉換成柱狀圖表來顯示數據的話,我們可以參考這篇:

[Windows 8 App]Telerik UI Controls---柱狀圖表