我想使y轴成为独立轴,即将线序列的水平渲染转换为垂直线。这是我开始使用的代码:
<Window x:Class="Wpf.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:charting="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit"
Title="MainWindow" Height="350" Width="525">
<Grid>
<charting:Chart>
<charting:Chart.Axes>
<charting:LinearAxis Orientation="X" ShowGridLines="True" Name="xAxis" />
<charting:LinearAxis Orientation="Y" ShowGridLines="True" Name="yAxis" />
</charting:Chart.Axes>
<charting:LineSeries
Name="lineSeries"
ItemsSource="{Binding}"
IndependentValuePath="Indep"
DependentValuePath="Dep">
</charting:LineSeries>
</charting:Chart>
</Grid>
</Window>
首先我尝试添加
<charting:LineSeries.IndependentAxis>
<charting:LinearAxis Orientation="Y" />
</charting:LineSeries.IndependentAxis>
<charting:LineSeries.DependentRangeAxis>
<charting:LinearAxis Orientation="X" />
</charting:LineSeries.DependentRangeAxis>
这会导致System.InvalidOperationException
显示消息
不能使用指定的独立轴。这可能是由于轴的未设置Orientation属性造成的。
但是,在上面的代码段中交换"X"
和"Y"
的值时,没有例外,一切正常,当然除了轴没有按我想要的方向定向。
我尝试的下一件事是以编程方式进行:
lineSeries.IndependentAxis = yAxis;
lineSeries.DependentRangeAxis = xAxis;
给了我同样的例外。同样,在上述语句中交换xAxis
和yAxis
时,也不例外。
知道如何得到我想要的东西吗?
答案 0 :(得分:0)
在轴交换前没有取得任何进展,我尝试了通用WPF旋转控件的方式。它就像在<charting:Chart>
元素下添加以下内容一样简单并且有效:
<charting:Chart.LayoutTransform>
<RotateTransform CenterX="0.5" CenterY="0.5" Angle="90"/>
</charting:Chart.LayoutTransform>
除非你真的只想交换相关/独立轴,RotateTransform
类似于大锤。因为那时你必须调整轴的位置并将它们旋转-90度。然而,这一切都是可行的,缺乏一个更直接的解决方案我决定采用这个。