我想:
RadCartesianChart
图表显示X轴,左侧是Y轴,右侧是次级Y轴,用于显示其他数据。目前,我的图表是使用以下
在XAML中实现的 <UserControl>
<UserControl.Resources>
<telerik:LinearAxis x:Key="Y1LinearAxis" />
<telerik:LogarithmicAxis x:Key="Y1LogarithmicAxis" />
<telerik:LinearAxis HorizontalLocation="Right" x:Key="Y2LinearAxis" />
<telerik:LogarithmicAxis HorizontalLocation="Right" x:Key="Y2LogarithmicAxis" />
</UserControl.Resources>
<telerik:RadCartesianChart>
<telerik:RadCartesianChart.HorizontalAxis>
<telerik:LinearAxis x:Name="XAxis" />
</telerik:RadCartesianChart.HorizontalAxis>
<telerik:RadCartesianChart.VerticalAxis>
<Binding Path="IsY1AxisLinear" Converter="{local:BoolToTelerikAxisConverter AxisWhenTrue={StaticResource Y1LinearAxis}, AxisWhenFalse={StaticResource Y1LogarithmicAxis}}" />
</telerik:RadCartesianChart.VerticalAxis>
<telerik:RadCartesianChart.SeriesProvider>
<telerik:ChartSeriesProvider x:Name="chartSeriesProvider" Source="{Binding GraphLines}">
<telerik:ChartSeriesProvider.SeriesDescriptors>
<telerik:ScatterSeriesDescriptor ItemsSourcePath="Data"
XValuePath="X1"
YValuePath="Y1">
</telerik:ScatterSeriesDescriptor>
<telerik:ScatterSeriesDescriptor ItemsSourcePath="Data"
XValuePath="X2"
YValuePath="Y2">
<telerik:ScatterSeriesDescriptor.Style>
<Style TargetType="telerik:ScatterLineSeries" BasedOn="{StaticResource ScatterLineSeriesStyle}">
<Setter Property="VerticalAxis"
Value="{Binding IsY2AxisLinear, Converter={local:BoolToTelerikAxisConverter AxisWhenTrue={StaticResource Y2LinearAxis}, AxisWhenFalse={StaticResource Y2LogarithmicAxis}}}" />
</Style>
</telerik:ScatterSeriesDescriptor.Style>
</telerik:ScatterSeriesDescriptor>
</telerik:ChartSeriesProvider.SeriesDescriptors>
</telerik:ChartSeriesProvider>
</telerik:RadCartesianChart.SeriesProvider>
</telerik:RadCartesianChart>
</UserControl>
我有一个转换器,它从布尔值(IsY1AxisLinear
和IsY2AxisLinear
)转换为定义为静态资源的telerik轴。
目前,第一个Y轴(左侧)在更改IsY1AxisLinear
值时正常工作,但第二个Y轴(右侧)未显示任何数据。当轴直接在样式中实现时,它确实显示数据,如
<Setter Property="VerticalAxis">
<Setter.Value><telerik:LinearAxis /></Setter.Value>
</Setter>
或甚至直接链接到静态资源
<Setter Property="VerticalAxis">
<Setter.Value><StaticResource ResourceKey="Y2LinearAxis" /></Setter.Value>
</Setter>
我也尝试过使用其他不同的方法,比如在后面的代码中直接实现轴(即使这个解决方案不符合我想要的目标),但是没有成功。
任何人都知道如何在第二轴上切换lin / log轴?