1

我想让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一条消息说

分配的独立轴不能使用。这可能是由于轴的方向属性未设置。

"X"但是,在上面的代码片段中交换和的值时"Y",没有例外,一切正常,当然轴的方向不是我想要的。

我尝试的下一件事是以编程方式进行:

lineSeries.IndependentAxis = yAxis;
lineSeries.DependentRangeAxis = xAxis;

这给了我同样的例外。同样,在交换xAxisyAxis上面的语句时,也不例外。

知道如何得到我想要的吗?

4

1 回答 1

0

在轴交换方面没有取得任何进展,我尝试了通用的 WPF 旋转控件方式。就像在元素下添加以下内容一样简单<charting:Chart>,它可以工作:

<charting:Chart.LayoutTransform>
  <RotateTransform CenterX="0.5" CenterY="0.5" Angle="90"/>
</charting:Chart.LayoutTransform>

除了如果你真的只想交换依赖/独立轴,就像RotateTransform大锤一样。因为那时您必须调整轴的位置并将它们旋转 -90 度。但是,这一切都是可行的,并且缺乏更直接的解决方案,我决定采用此方法。

于 2014-01-21T01:06:09.700 回答