在WPF图表工具包中调整X轴标签的频率

时间:2011-11-14 19:55:51

标签: wpf silverlight charts toolkit

我对XAML标记感到困惑,特别是图表工具包,非常感谢帮助整理它。我已成功创建了一个图表,其中X轴显示时间轴,Y轴显示使用以下XAML的值:

    <chartingToolkit:Chart HorizontalAlignment="Left" Margin="44,12,0,0" Name="chart1" VerticalAlignment="Top" Height="521" Width="826">
        <chartingToolkit:Chart.Axes>
            <chartingToolkit:DateTimeAxis IntervalType ="Hours" Interval="1">
                <chartingToolkit:DateTimeAxis.AxisLabelStyle>
                    <Style TargetType="chartingToolkit:DateTimeAxisLabel">
                        <Setter Property="Template">
                            <Setter.Value>                                   
                                <Setter Property="StringFormat" Value="{}{0:H}" />
                            </Setter.Value>
                        </Setter>
                    </Style>
                </chartingToolkit:DateTimeAxis.AxisLabelStyle>                       
            </chartingToolkit:DateTimeAxis>
          </chartingToolkit:Chart.Axes>
        <chartingToolkit:LineSeries x:Name="LineSeries1" DependentValuePath="Value" IndependentValuePath="Key"  ItemsSource="{Binding}">
            <chartingToolkit:LineSeries.DataPointStyle>
                <Style TargetType="chartingToolkit:LineDataPoint">
                    <Setter Property="Visibility" Value="Collapsed"/>
                    <Setter Property="Background" Value="violet"/>
                    <Setter Property="Opacity" Value="0" />
                </Style>
            </chartingToolkit:LineSeries.DataPointStyle>
        </chartingToolkit:LineSeries>
    </chartingToolkit:Chart>

在代码隐藏中,我填充一个声明为Dictionary<TimeSpan, float> Dict = new Dictionary<TimeSpan, float>();的序列,每分钟都有2小时的值(60个值),并将lineseries1的datacontext设置为字典:{{1} }

图表绘制得很漂亮,但是从我在XAML中的徒劳尝试中可以看出这一点。我需要X标签和刻度标记每小时只显示一次而不是每分钟一次,我需要它只显示几小时而不是分钟和秒。我上面用于调整标签间隔和格式的XAML代码不起作用。我很感激任何能指引我朝正确方向发展的指针。

谢谢, Kalory

1 个答案:

答案 0 :(得分:1)

如果您为DateTimeAxis添加方向,它应该按照您的计划工作,如下所示:

<chartingToolkit:DateTimeAxis Orientation="X" IntervalType ="Hours" Interval="1">

我不知道为什么会有所不同,但似乎确实如此......