首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >强制轴使用Visiblox图表中给定数量的主要刻度线

强制轴使用Visiblox图表中给定数量的主要刻度线
EN

Stack Overflow用户
提问于 2011-07-22 02:48:10
回答 2查看 1.8K关注 0票数 5

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

EN

回答 2

Stack Overflow用户

发布于 2011-07-22 15:22:22

有几种选择。首先,您可以设置MajorTickInterval以强制主要刻度的分布。根据您的用例,您可能需要查看轴的实际范围,并除以您希望获得合理间隔的刻度数。

另一种选择是对轴进行子类化并覆盖GetMajorTickValues方法,该方法是轴用来确定标记放置位置的方法。

票数 4
EN

Stack Overflow用户

发布于 2011-07-22 15:56:59

如果需要强制主轴和次轴上的值之间的关系,可以通过ElementName绑定来实现。例如,可以将次轴MajorTickInterval绑定到主轴的计算记号间隔ActualMajorTickInterval,如下所示:

代码语言:javascript
复制
<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>

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

代码语言:javascript
复制
<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>

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6781106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档