How to disable animation in WPF Toolkit charts

Is there a way to disable animation in Xaml directly? The animation is really sluggish, as my chart has a lot of points.

+4
source share
1 answer

I downloaded the latest source code http://wpf.codeplex.com/SourceControl/list/changesets

My idea is to remove the animation by changing the style for different charts (chart points, DataPointStyle)

charting:PieDataPoint example charting:PieDataPoint

try to remove the animation for the displayed data and take your own style with the given key (x: key = "myStyle" → DataPointStyle="{StaticResource myStyle}" )

and delete Opacity="0" in <Grid x:Name="Root" Opacity="0">

remove this visual state group from your style

 <VisualStateGroup x:Name="RevealStates"> <VisualStateGroup.Transitions> <VisualTransition GeneratedDuration="0:0:0.5" /> </VisualStateGroup.Transitions> <VisualState x:Name="Shown"> <Storyboard> <DoubleAnimation Storyboard.TargetName="Root" Storyboard.TargetProperty="Opacity" To="1" Duration="0" /> </Storyboard> </VisualState> <VisualState x:Name="Hidden"> <Storyboard> <DoubleAnimation Storyboard.TargetName="Root" Storyboard.TargetProperty="Opacity" To="0" Duration="0" /> </Storyboard> </VisualState> </VisualStateGroup> 

EDIT

This is a modified style.

 <!-- charting:PieDataPoint --> <Style TargetType="charting:PieDataPoint"> <Setter Property="Background" Value="Orange" /> <Setter Property="BorderBrush" Value="White" /> <Setter Property="BorderThickness" Value="1" /> <Setter Property="IsTabStop" Value="False" /> <Setter Property="RatioStringFormat" Value="{}{0:p2}" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="charting:PieDataPoint"> <Grid x:Name="Root" Opacity="0"> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="CommonStates"> <VisualStateGroup.Transitions> <VisualTransition GeneratedDuration="0:0:0.1" /> </VisualStateGroup.Transitions> <VisualState x:Name="Normal" /> <VisualState x:Name="MouseOver"> <Storyboard> <DoubleAnimation Storyboard.TargetName="MouseOverHighlight" Storyboard.TargetProperty="Opacity" To="0.6" Duration="0" /> </Storyboard> </VisualState> </VisualStateGroup> <VisualStateGroup x:Name="SelectionStates"> <VisualStateGroup.Transitions> <VisualTransition GeneratedDuration="0:0:0.1" /> </VisualStateGroup.Transitions> <VisualState x:Name="Unselected" /> <VisualState x:Name="Selected"> <Storyboard> <DoubleAnimation Storyboard.TargetName="SelectionHighlight" Storyboard.TargetProperty="Opacity" To="0.6" Duration="0" /> </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <Path x:Name="Slice" Data="{TemplateBinding Geometry}" Fill="{TemplateBinding Background}" Stroke="{TemplateBinding BorderBrush}" StrokeMiterLimit="1"> <ToolTipService.ToolTip> <StackPanel> <ContentControl Content="{TemplateBinding FormattedDependentValue}" /> <ContentControl Content="{TemplateBinding FormattedRatio}" /> </StackPanel> </ToolTipService.ToolTip> </Path> <Path x:Name="SelectionHighlight" Data="{TemplateBinding GeometrySelection}" Fill="Red" StrokeMiterLimit="1" IsHitTestVisible="False" Opacity="0" /> <Path x:Name="MouseOverHighlight" Data="{TemplateBinding GeometryHighlight}" Fill="White" StrokeMiterLimit="1" IsHitTestVisible="False" Opacity="0" /> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style> 

After my first attempt to remove the animation, I wanted to refuse because it did not work.

But then I looked at me with a reflector on the source code and found a way that it still works.

Installing DataPointStyle is unfortunately not enough, I think this is a mistake.

 <chartingToolkit:Chart Margin="8"> <chartingToolkit:Chart.Series> <chartingToolkit:BarSeries x:Name="barSeries" Title="Experience" DataPointStyle="{StaticResource myBarStyle}"> </chartingToolkit:BarSeries> </chartingToolkit:Chart.Series> </chartingToolkit:Chart> 

In the designer of the control where the graph is included, simply do the following.

 this.barSeries.RefreshStyles(); 

hope this helps

+1
source

All Articles