找回密码
 立即注册

QQ登录

只需一步,快速开始

goodzhu110

初级会员

3

主题

7

帖子

326

积分

初级会员

积分
326

活字格认证

最新发帖
goodzhu110
初级会员   /  发表于:2013-6-8 09:27  /   查看:6983  /  回复:5
想实现类似效果的3D饼图
请问有没有类似的示例,文档可以参考,ChartSamples都是针对2D图标的示例

目前效果

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

5 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-6-8 19:03:00
沙发
回复 1楼goodzhu110的帖子

主要思路是通过 RotateTransform3D 来进行调整,请参考以下实现代码:

XAML代码:
  1. <Window x:Class="_9381_3DChart.MainWindow"
  2.         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3.         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4.         Title="MainWindow" Height="350" Width="525" xmlns:c1="http://schemas.componentone.com/winfx/2006/xaml">

  5.     <Grid>
  6.         <Grid.Resources>
  7.             <c1:DataPointConverter x:Key="fc" />
  8.             <DataTemplate x:Key="lbl">
  9.                 <Grid>
  10.                     <Path Data="M0.5,0.5 L23,0.5 23,23 11.61165,29.286408 0.5,23 z" Stretch="Fill" Fill="#FFF1F1F1" Stroke="DarkGray" StrokeThickness="1"/>
  11.                     <TextBlock FontSize="10" Margin="5 5 5 15" Foreground="DarkRed" Text="{Binding ConverterParameter=系列: \{#SeriesLabel\}\{#NewLine\}数据点: \{#PointIndex\}\{#NewLine\}数值: \{#Value\}, Converter={StaticResource fc}}" />
  12.                 </Grid>
  13.             </DataTemplate>
  14.         </Grid.Resources>
  15.         <Grid.RowDefinitions>
  16.             <RowDefinition Height="60"/>
  17.             <RowDefinition Height="*"/>            
  18.         </Grid.RowDefinitions>
  19.         <c1:C1Chart Grid.Row="1" x:Name="c1chart" ChartType="Pie">
  20.             <c1:C1Chart.Data>
  21.                 <c1:ChartData>
  22.                     <c1:DataSeries Label="s1" Values="3 5 7 4" PointLabelTemplate="{StaticResource lbl}"/>
  23.                 </c1:ChartData>
  24.             </c1:C1Chart.Data>
  25.             <c1:C1ChartLegend x:Name="legend" />
  26.         </c1:C1Chart>
  27.     </Grid>
  28. </Window>
复制代码


后台C#代码:
  1.     public partial class MainWindow : Window
  2.     {
  3.         public MainWindow()
  4.         {
  5.             InitializeComponent();
  6.             c1chart.ChartType = C1.WPF.C1Chart.ChartType.Pie3DExploded;
  7.             c1chart.View.Camera.Transform = new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(120, 90, 30), 60));      
  8.         }
  9.     }
复制代码
回复 使用道具 举报
WPF_guy
论坛元老   /  发表于:2013-6-8 21:43:00
板凳
回复 2楼dof的帖子

谢啦,果然可以解决!!
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-6-9 15:42:00
地板
节日快乐
回复 使用道具 举报
goodzhu110
初级会员   /  发表于:2013-6-14 08:46:00
5#
的确很有帮助
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2013-6-14 17:15:00
6#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部