Регулировка частоты меток оси X в наборе инструментов WPF Charting - PullRequest
2 голосов
/ 14 ноября 2011

Меня смущает разметка 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 значений) и задаю для datacontext для lineseries1 словарь как таковой: LineSeries1.DataContext = Dict.

График прекрасно рисует, как видно из моей тщетной попытки в XAML. Мне нужно, чтобы метка X и метки отображались только один раз в час, а не раз в минуту, и мне нужно, чтобы они отображали только часы, а не минуты и секунды. Мой код XAML выше для настройки интервала и форматирования метки не работает. Я был бы признателен за любой указатель, чтобы направить меня в правильном направлении.

Спасибо, Kalory

1 Ответ

1 голос
/ 20 января 2012

Это должно работать так, как вы запланировали, если вы добавите ориентацию в свой DateTimeAxis, например:

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

Я не знаю, почему это имеет значение, но кажется, что это делает ...

...