Visiblox チャートの Y 軸に LinearAxis を使用する場合、ツールキットで軸の範囲と目盛りの位置を自動的に計算しながら、軸に特定の数の大目盛りを強制的に使用させたいと考えています。たとえば、プライマリ Y 軸とセカンダリ Y 軸があり、両方の軸で同じ数の大目盛りを使用して、水平グリッド線が重なるようにしたいとします。これは可能ですか?
1845 次
2 に答える
4
いくつかのオプションがあります。まず、MajorTickIntervalを設定して、メジャー ティックの分布を強制できます。ユースケースによっては、軸の実際の範囲を確認し、適切な間隔を取得する目盛りの数で割る必要がある場合があります。
もう 1 つの方法は、軸をサブクラス化し、軸が目盛りを配置する場所を決定するために使用する GetMajorTickValues メソッドをオーバーライドすることです。
于 2011-07-22T07:22:21.667 に答える
4
主軸と副軸の値の間に関係を強制する必要がある場合は、ElementName
バインディングを介して実現できます。たとえば、次のように、第 2 軸MajorTickInterval
を第 1 軸の計算されたティック間隔にバインドでき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>
ただし、データによっては、各軸の目盛り間隔が同じであっても、主目盛りのグリッド線が一致しない場合があります。この場合、alse の範囲をバインドしたい場合があります。
<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>
より複雑なロジックが必要な場合は、値コンバーターを介してこれを行うことができる場合があります。
于 2011-07-22T07:56:58.743 に答える