怎么修改饼状图各块的颜色?

燕雀之志 2014-03-13 05:37:29
win 8 商店应用程序:
目前效果如下:

我想把它的红蓝色块改成别的颜色,请问怎么改,如下是代码:


CS代码:


/// <summary>
/// 饼状图
/// </summary>
private void UpdateCharts()
{
List<NameValueItem> items = new List<NameValueItem>();
NameValueItem nv = new NameValueItem();
nv.Value = Convert.ToInt32(20);
nv.Name = nv.Value.ToString() + "% 及格比例";

NameValueItem nv1 = new NameValueItem();
nv1.Value = Convert.ToInt32(100 - Convert.ToInt32(20));
nv1.Name = nv1.Value.ToString() + "% 不及格比例";
items.Add(nv);
items.Add(nv1);
((PieSeries)this.PieChart.Series[0]).ItemsSource = items;

}
public class NameValueItem
{
public string Name { get; set; }
public int Value { get; set; }
}



XAML代码:

<Charting:Chart
Grid.Row="1" Grid.Column="0"
HorizontalAlignment="Left"
Width="500"
x:Name="PieChart"
Title="" Foreground="Black" FontSize="12">
<Charting:Chart.Series>
<Series:PieSeries
Title="Population"
ItemsSource="{Binding Items}"
IndependentValueBinding="{Binding Name}"
DependentValueBinding="{Binding Value}"
IsSelectionEnabled="True"/>
</Charting:Chart.Series>
</Charting:Chart>
...全文
657 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
桥头哥哥 2014-03-19
  • 打赏
  • 举报
回复
看半天了就是不会
燕雀之志 2014-03-19
  • 打赏
  • 举报
回复
人都哪去了。
燕雀之志 2014-03-13
  • 打赏
  • 举报
回复
额?没有人吗?
为什么会想着去实现饼状图的效果呢,其实之前是用MpChart库里面的饼状图的,但是当几个比较小的比例靠的比较近的时候显示比例的文字会重叠在一起达不到我们预期效果。基于这个原因才有了我们这次的自定义饼状图的过程。效果展示:主要的功能:饼状图分块显示,不同的颜色表示不同的快。(必备的功能了)饼状图每一块的文字标示。饼状图的文字标示尽量不重叠。(这是我们自定义饼状图的初衷,就是为了避免这种情况)旋转的功能。点击选中事件。代码介绍:         <!-- 饼状图的半径 -->                  <!-- 选中时候的那一块往外拉的距离 -->                  <!-- 文字的大小 -->                  <!-- 文字的颜色 -->                  <!-- 画文字部分延着半径多出来的长度 -->                  <!-- 画文字部水平多出来的长度 -->                  <!-- 画文字的时候先在原有的圆上面延伸出来的长度 -->                  <!-- 是否可以旋转 -->              饼状图,这个应该好画,求到角度和扫过的角度就可以画出来。半径对应属性里面的pie_circle_radius文字描述的延长线,有两个线的哦,一条是每一块的中度角位置延长出来的先对应pie_marker_line1,另一天是水平线对应pie_marker_line2。文字的画法,为了文字不重叠有些文字的描述会舍弃掉的,一直使用当前画的文字的区域和前一个文字的区域比较是否有重叠,重叠我们就不画了。点击选中的那一块区域往外拉出一点距离,对应pie_select_offset属性,选中区域的中度角方向偏移多少距离。旋转,对应ACTION_MOVE事件,会把ACTION对应的x,y对应到圆的角度。这样ACTION_MOVE的时候我们就计算到角度的变化了。代码里面的解释更加的详细点,都尽量写了一些注释。

4,816

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧