Hi all.
I need to sync position and width for two RadCartesianChart's.
XAML:
style definition for chart's:<Stylex:Key="ChartStyle"TargetType="telerik:RadCartesianChart"><SetterProperty="Template"><Setter.Value><ControlTemplateTargetType="{x:Type telerik:RadChartBase}"><BorderBackground="{TemplateBinding Background}"BorderBrush="{TemplateBinding BorderBrush}"BorderThickness="{TemplateBinding BorderThickness}"><Grid><ContentPresenterx:Name="emptyContent"HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"VerticalAlignment="{TemplateBinding VerticalContentAlignment}"Content="{TemplateBinding EmptyContent}"ContentTemplate="{TemplateBinding EmptyContentTemplate}"IsHitTestVisible="False"Visibility="Collapsed"/><Canvasx:Name="adornerContainer"HorizontalAlignment="Stretch"VerticalAlignment="Stretch"Background="Transparent"><Canvasx:Name="labelContainer"HorizontalAlignment="Stretch"VerticalAlignment="Stretch"><Canvasx:Name="renderSurface"HorizontalAlignment="Stretch"VerticalAlignment="Stretch"><Borderx:Name="plotAreaDecoration"Style="{TemplateBinding PlotAreaStyle}"/></Canvas></Canvas></Canvas></Grid></Border></ControlTemplate></Setter.Value></Setter></Style>
chart #1:<telerik:RadCartesianChartx:Name="DeviationChart"Grid.Row="1"HorizontalAlignment="Stretch"VerticalAlignment="Stretch"MaxZoom="{Binding MaxZoom}"MouseMove="Chart_OnMouseMove"PanOffset="{Binding PanOffset,Mode=TwoWay}"Style="{StaticResource ChartStyle}"Zoom="{Binding Zoom,Mode=TwoWay}"><telerik:ScatterAreaSeriesx:Name="DeviationSeries"Fill="{Binding DeviationFillColor}"ItemsSource="{Binding DeviationPoints}"Opacity="{Binding DeviationOpacity}"Stroke="{Binding DeviationColor}"StrokeMode="AllButPlotLine"StrokeThickness="{Binding DeviationThickness}"Tag="{BindingPath=Settings.PressureEU,Converter={StaticResource PressureEUConverter}}"XValueBinding="X"YValueBinding="Y"></telerik:ScatterAreaSeries><!-- ... --><telerik:RadCartesianChart.HorizontalAxis><telerik:LinearAxisx:Name="DeviationChartHorizontalAxis"MajorTickStyle="{StaticResource TopChartTickStyle}"Maximum="{Binding Path=ChartSettings.ChartMaxX}"Minimum="{Binding Path=ChartSettings.ChartMinX}"ShowLabels="False"Visibility="Collapsed"/></telerik:RadCartesianChart.HorizontalAxis><telerik:RadCartesianChart.VerticalAxis><telerik:LinearAxisx:Name="DeviationChartVerticalAxis"Title="{Binding Path=PressureBaseEUText}"LabelFormat="N2"LastLabelVisibility="Visible"Maximum="{Binding DeviationChartSettings.ChartMaxY}"Minimum="{Binding DeviationChartSettings.ChartMinY}"Style="{StaticResource LinearAxisStyle}"/></telerik:RadCartesianChart.VerticalAxis><telerik:RadCartesianChart.Grid><telerik:CartesianChartGridMajorXLinesRenderMode="All"MajorYLinesRenderMode="All"StripLinesVisibility="None"Style="{StaticResource CartesianChartGridStyle}"/></telerik:RadCartesianChart.Grid><telerik:RadCartesianChart.Behaviors><telerik:ChartPanAndZoomBehaviorPanMode="Both"ZoomMode="Both"/><telerik:ChartTrackBallBehaviorShowIntersectionPoints="False"ShowTrackInfo="True"SnapMode="None"/></telerik:RadCartesianChart.Behaviors></telerik:RadCartesianChart>
chart #2:<telerik:RadCartesianChartx:Name="Chart"Grid.Row="1"MaxZoom="{Binding MaxZoom}"MouseMove="Chart_OnMouseMove"PanOffset="{Binding PanOffset,Mode=TwoWay}"Style="{StaticResource ChartStyle}"Zoom="{Binding Zoom,Mode=TwoWay}"><telerik:ScatterAreaSeriesx:Name="ElevationSeries"Fill="{Binding ElevationFillColor}"ItemsSource="{Binding RealElevationsPoints}"Opacity="{Binding ElevationOpacity}"Stroke="{Binding ElevationColor}"StrokeMode="AllButPlotLine"StrokeThickness="{Binding ElevationThickness}"XValueBinding="X"YValueBinding="Y"><telerik:ScatterLineSeries.LegendSettings><telerik:SeriesLegendSettingsTitle="{Binding ElevationDescription}"/></telerik:ScatterLineSeries.LegendSettings><!-- ... --><telerik:ScatterLineSeries.TrackBallInfoTemplate><DataTemplate><BorderBackground="#FFEBEBEB"><TextBlockText="{Binding Path=DataPoint.XValue, StringFormat=\{0:N3\}}"/></Border></DataTemplate></telerik:ScatterLineSeries.TrackBallInfoTemplate></telerik:ScatterAreaSeries><telerik:RadCartesianChart.HorizontalAxis><telerik:LinearAxisx:Name="ChartHorizontalAxis"LabelFormat="N0"Maximum="{Binding Path=ChartSettings.ChartMaxX}"Minimum="{Binding Path=ChartSettings.ChartMinX}"Style="{StaticResource LinearAxisStyle}"/></telerik:RadCartesianChart.HorizontalAxis><telerik:RadCartesianChart.VerticalAxis><telerik:LinearAxisx:Name="ChartVerticalAxis"HorizontalLocation="Left"LabelFormat="N2"Maximum="{Binding ChartSettings.ChartMaxY}"Minimum="{Binding ChartSettings.ChartMinY}"Style="{StaticResource LinearAxisStyle}"/></telerik:RadCartesianChart.VerticalAxis><telerik:RadCartesianChart.Grid><telerik:CartesianChartGridMajorXLinesRenderMode="All"MajorYLinesRenderMode="All"StripLinesVisibility="None"Style="{StaticResource CartesianChartGridStyle}"/></telerik:RadCartesianChart.Grid><telerik:RadCartesianChart.Behaviors><telerik:ChartPanAndZoomBehaviorPanMode="Both"ZoomMode="Both"/><telerik:ChartTrackBallBehaviorShowIntersectionPoints="False"ShowTrackInfo="True"SnapMode="None"/></telerik:RadCartesianChart.Behaviors></telerik:RadCartesianChart>
Code:But this doesn't work. Any ideas? Best regards, George.publicoverridevoidOnApplyTemplate(){base.OnApplyTemplate();if(!Chart.IsTemplateApplied) Chart.ApplyTemplate();if(!DeviationChart.IsTemplateApplied) DeviationChart.ApplyTemplate();var chartpad = Chart.Template.FindName("plotAreaDecoration", Chart)asBorder;var deviationpad = DeviationChart.Template.FindName("plotAreaDecoration", DeviationChart)asBorder;if(null!= chartpad &&null!= deviationpad){chartpad.SizeChanged += (sender, args) =>{// Set position of left edge of chart #1 relative to chart #2objectleft = chartpad.GetValue(Canvas.LeftProperty);deviationpad.SetValue(Canvas.LeftProperty, left);// Set width of chart #1 relative to chart #2objectwidth = chartpad.GetValue(WidthProperty);deviationpad.SetValue(WidthProperty, width);};}}