【问题标题】:Force axis to use given number of major tick marks in Visiblox chart强制轴使用 Visiblox 图表中给定数量的主要刻度线
【发布时间】:2011-07-21 18:48:09
【问题描述】:

在 Visiblox 图表中为 Y 轴使用 LinearAxis 时,我想强制轴使用给定数量的主要刻度线,同时仍然让工具包自动计算轴范围和刻度线位置。例如,我可能有一个主要和次要 Y 轴,我希望两个轴使用相同数量的主要刻度,以便它们的水平网格线重叠。这可能吗?

【问题讨论】:

    标签: c# visiblox


    【解决方案1】:

    有几个选项。首先,您可以设置MajorTickInterval 来强制分配主要刻度。根据您的用例,您可能需要查看轴的实际范围,然后除以您想要获得合理间隔的刻度数。

    另一种选择是对轴进行子类化并覆盖 GetMajorTickValues 方法,该方法是轴用来确定在何处放置刻度的。

    【讨论】:

      【解决方案2】:

      如果您需要强制在主轴和次轴上的值之间建立关系,可以通过ElementName 绑定来实现。例如,您可以将辅助轴 MajorTickInterval 绑定到计算得出的主轴的刻度间隔 ActualMajorTickInterval,如下所示:

      <Grid x:Name="LayoutRoot" Background="White">
        <vis:Chart x:Name="chart">
          <vis:Chart.YAxis>
            <vis:LinearAxis x:Name="primaryAxis"/>
          </vis:Chart.YAxis>
          <vis:Chart.SecondaryYAxis>
            <vis:LinearAxis MajorTickInterval="{Binding ElementName=primaryAxis, Path=ActualMajorTickInterval}"/>
          </vis:Chart.SecondaryYAxis>
        </vis:Chart>
      </Grid>
      

      但是,根据您的数据,每个轴具有相同的刻度间隔可能不会导致您的主要刻度网格线重合。在这种情况下,您可能还想绑定范围:

      <Grid x:Name="LayoutRoot" Background="White">
        <vis:Chart x:Name="chart">
          <vis:Chart.YAxis>
            <vis:LinearAxis x:Name="primaryAxis"/>
          </vis:Chart.YAxis>
          <vis:Chart.SecondaryYAxis>
            <vis:LinearAxis Range="{Binding ElementName=primaryAxis, Path=ActualRange}"
                            MajorTickInterval="{Binding ElementName=primaryAxis, Path=ActualMajorTickInterval}"/>
          </vis:Chart.SecondaryYAxis>
        </vis:Chart>
      </Grid>
      

      如果您需要更复杂的逻辑,可以通过值转换器来实现。

      【讨论】:

      • 感谢您的示例,但是,这并不是我想要的。在我的情况下,可能一个轴上的数据范围从 0 到 1,而另一个轴上的数据范围从 10,000 到 15,000。然后目标不是在绝对刻度间隔或范围上进行绑定,而只是强制辅助轴在使用给定数量的刻度的条件下绘制一组漂亮的刻度。我也不能采用默认范围并除以我想要的刻度数,因为这样刻度位置可能不是“漂亮”。也许这里唯一的方法就是重写刻度定位算法。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-07
      • 2013-03-10
      相关资源
      最近更新 更多