Hi ,
Kindly let me know how can the following functionalities will be achived using XamChart 3dPie Control
1. Decrease the Radius of 3dPie XamChart control
2. The Text in the Pie chart, show in diffrent directions. I want to sho them in contant direction.
3. Set all the fonts in the Legent to constant size.
Thank You,
Regards
Arun
Hi Aran,
With regards to your first requirement to decrease the radius of the 3d pie chart you can apply a scale transformation to the chart setting the ScaleX and ScaleY values e.g.
<igCA:XamChart.Transform3D> <Transform3DGroup> <ScaleTransform3D ScaleX="0.3" ScaleY="0.3" ScaleZ="0.3" /> </Transform3DGroup></igCA:XamChart.Transform3D>
If you need to change the ExploadedRadius you can set the following chart parameters:
<igCA:Series.ChartParameters> <igCA:ChartParameter Type="Exploded" Value="True" /> <igCA:ChartParameter Type="ExplodedRadius" Value="0.1" /></igCA:Series.ChartParameters>
About your second requirement I'm affraid that this is not possible with the current release. By default only the Markers in the 2d pie chart will not be rotated. You can submit a feature request here
One way to set the FontSize of the Legend items is shown below:
<igCA:XamChart.Legend> <igCA:Legend FontSize="10" /></igCA:XamChart.Legend>
Let me know if you have any questions with this matter.
Vlad
Hi Vlad,
Thank you for the replay.
1. I tried with your solution to decrease the radius of 3d Pie Xam Chart. But got the following error..
{System.InvalidOperationException: Cannot resolve all property references in the property path 'Transform3D.Children[0].Rotation.Angle'. Verify that applicable objects support the properties. at System.Windows.Media.Animation.Storyboard.VerifyPathIsAnimatable(PropertyPath path) at System.Windows.Media.Animation.Storyboard.ClockTreeWalkRecursive(Clock currentClock, DependencyObject containingObject, INameScope nameScope, DependencyObject parentObject, String parentObjectName, PropertyPath parentPropertyPath, HandoffBehavior handoffBehavior, HybridDictionary clockMappings, Int64 layer) at System.Windows.Media.Animation.Storyboard.ClockTreeWalkRecursive(Clock currentClock, DependencyObject containingObject, INameScope nameScope, DependencyObject parentObject, String parentObjectName, PropertyPath parentPropertyPath, HandoffBehavior handoffBehavior, HybridDictionary clockMappings, Int64 layer) at System.Windows.Media.Animation.Storyboard.BeginCommon(DependencyObject containingObject, INameScope nameScope, HandoffBehavior handoffBehavior, Boolean isControllable, Int64 layer) at System.Windows.Media.Animation.BeginStoryboard.Begin(DependencyObject targetObject, INameScope nameScope, Int64 layer) at System.Windows.Media.Animation.BeginStoryboard.Invoke(FrameworkElement fe, FrameworkContentElement fce, Style targetStyle, FrameworkTemplate frameworkTemplate, Int64 layer) at System.Windows.StyleHelper.InvokeEventTriggerActions(FrameworkElement fe, FrameworkContentElement fce, Style ownerStyle, FrameworkTemplate frameworkTemplate, Int32 childIndex, RoutedEvent Event) at System.Windows.StyleHelper.ExecuteEventTriggerActionsOnContainer(Object sender, RoutedEventArgs e) at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e) at System.Windows.BroadcastEventHelper.BroadcastEvent(DependencyObject root, RoutedEvent routedEvent) at System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(Object root) at MS.Internal.LoadedOrUnloadedOperation.DoWork() at System.Windows.Media.MediaContext.FireLoadedPendingCallbacks() at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks() at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget) at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)}
2. I Requested the new feature as you asked.
3. Also the FontSize I could not able to change.
Thank you,
Regards,
Arun,
Here is the XamChart I'm using to test this:
<igCA:XamChart x:Name="xamChart1" View3D="True" > <igCA:XamChart.Legend> <igCA:Legend FontSize="10" /> </igCA:XamChart.Legend> <igCA:XamChart.Transform3D> <Transform3DGroup> <ScaleTransform3D ScaleX="0.3" ScaleY="0.3" ScaleZ="0.3" /> <RotateTransform3D> <RotateTransform3D.Rotation> <AxisAngleRotation3D Angle="30" /> </RotateTransform3D.Rotation> </RotateTransform3D> </Transform3DGroup> </igCA:XamChart.Transform3D> <igCA:XamChart.Series> <igCA:Series ChartType="Pie" > <igCA:Series.Marker> <igCA:Marker/> </igCA:Series.Marker>
<igCA:Series.DataPoints> <igCA:DataPoint Value="10"/> <igCA:DataPoint Value="20"/> <igCA:DataPoint Value="30"/> <igCA:DataPoint Value="40"/> <igCA:DataPoint Value="50"/> </igCA:Series.DataPoints> </igCA:Series> </igCA:XamChart.Series></igCA:XamChart>
I'm not sure about the exception but I suppose you are setting invalid parameters for the Transform3DGroup. You can also double check you are setting the View3D to true. Let me know if you can resolve this issue with my code.
Thank You Vlad. That resolved my issue.