设为首页 加入收藏

TOP

[深入浅出Windows 10]QuickCharts图表控件库解析(三)
2017-10-11 16:07:30 】 浏览:4998
Tags:深入浅出 Windows QuickCharts 图表 控件 解析
t;10,0,0,0"
Visibility="{TemplateBinding LegendVisibility}"/> <Canvas> <amq:Balloon x:Name="PART_Balloon" BorderBrush="{TemplateBinding Foreground}" BorderThickness="2" Visibility="Collapsed"/> </Canvas> </Grid> </Border> </ControlTemplate>

    命名为PART_SliceCanvas的Canvas对象是饼图的图形面板,在该面板上会添加多个饼图切片Slice控件形成一个完成的圆形,组成一个饼图,当然如果只有一个数据的时候就只有一个Slice控件,这时候Slice控件是一个完整的圆。PieChart类里面定义的Legend对象对应样式里面的命名为PART_Legend的Legend控件,表示饼图的图例,显示在饼图图表的右上角上。PieChart类里面定义的Balloon对象对应样式里面的命名为PART_Balloon的Balloon控件,表示饼图的标示,这个Balloon控件是在一个Canvas面板的里面的,它的位置会根据用户点击的Slice控件的位置而进行改变,改变的原理是通过设置Balloon控件的Canvas.LeftProperty和Canvas.TopProperty属性来实现。

    在PieChart控件里面最核心的逻辑就是对Slice控件初始化的过程了,这个过程是通过调用ProcessData()方法来初始化饼图里面所有的Slice控件,在ProcessData()方法里面先后调用了三个封装好的方法,SetData()方法、ReallocateSlices()方法和RenderSlices()方法。SetData()方法设置饼图数据属性的绑定,饼图的数据包含了标题和数值两个属性,标题是用于表示Slice控件的含义,数值是用来计算Slice控件的大小。ReallocateSlices()方法创建和初始化饼图图表里面所有的Slice控件,把Slice控件添加到PART_SliceCanvas面板上。RenderSlices()方法用于设置Slice控件在PART_SliceCanvas面板上的位置和隐藏Balloon控件,因为Balloon控件要点击了Slice控件才显示出来。

    (5)使用PieChart控件

    PieChart控件把相关的图形创建初始化等逻辑都封装好了,使用PieChart控件创建饼图图表只需要设置好TitleMemberPath属性和ValueMemberPath属性和数据源数据属性的对应关系,就可以把饼图图表显示出来。

    XAML代码如下所示:

PieChart.xaml文件主要代码
------------------------------------------------------------------------------------------------------------------
    <amq:PieChart x:Name="pie1" TitleMemberPath="title" ValueMemberPath="value"></amq:PieChart>

    后台CS代码如下所示:

PieChart.xaml.cs文件主要代码
------------------------------------------------------------------------------------------------------------------
    public ObservableCollection<PData> Data = new ObservableCollection<PData>()
    {
        new PData() { title = "slice #1", value = 30 },
        new PData() { title = "slice #2", value = 60 },
        new PData() { title = "slice #3", value = 40 },
        new PData() { title = "slice #4", value = 10 },
    };
    private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
    {
        // 通过DataSource属性把数据集合传递给饼图图表
        pie1.DataSource = Data;
    }
    ……省略若干代码
    // 饼图绑定的数据集合的数据类型表示饼图的一块
    public class PData
    {
        public string title { get; set; }
        public double value { get; set; }
    }

13.4.3 连续图形图表SerialChart的实现逻辑

    在QuickCharts控件库里面连续图形图表SerialChart实现了三种图形,线性图LineGraph、柱形图ColumnGraph和区域图AreaGraph。可以在SerialChart图表里面显示其中一种或多种图形,因为这三种图形实现的原理是类似,都是在坐标轴上连续性地展示相关的数据,只是图形的形状不一样,所以在QuickCharts控件库里面这三种图形统一使用SerialChart控件来封装起来。先打开SerialChart控件的样式文件分析SerialChart控件的样式结构,SerialChart控件的样式文件SerialChart.xaml的主要代码如下所示:

SerialChart.xaml文件主要代码
------------------------------------------------------------------------------------------------------------------
    <ControlTemplate TargetType="amq:SerialChart">
        <Border Background="{TemplateBinding Background}"
                BorderBrush="{TemplateBinding BorderBrush}"
                BorderT
首页 上一页 1 2 3 4 5 下一页 尾页 3/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇[UWP] 对应用进行A/B测试 下一篇WindowsPhone8解锁提示IpOverUsbS..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目