Диаграмма набора инструментов Silverlight: оси не всегда отображают 0 и максимальное значение - PullRequest
0 голосов
/ 17 февраля 2010

Я использую элемент управления диаграммой, представленный в наборе инструментов Silverlight.

Я определил 3 оси (код ниже). Теперь ряды на графике меняются по команде пользователя. Иногда значение 0 источника и максимальное значение оси не отображаются. Они не обязательно отсутствуют одновременно. Я не знаю, почему это происходит. Значения в серии находятся в том же диапазоне, в котором они связаны (0, 1000). Это нормальное поведение?

      <chartingToolkit:Chart.Axes>
            <chartingToolkit:LinearAxis x:Name="LeftYAxis"
                                        Orientation="Y"
                                        Location="Left"
                                        BorderThickness="0.5"
                                        >

                <chartingToolkit:LinearAxis.AxisLabelStyle>
                    <Style TargetType="chartingToolkit:AxisLabel" >
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="chartingToolkit:AxisLabel">
                                    <Grid Background="Transparent">
                                        <Border x:Name="AxisLabelMarker"
                                                Background="Transparent"
                                                BorderBrush="Blue"
                                                BorderThickness="0"
                                                >

                                            <TextBlock Text="{Binding}"
                                                       Grid.Column="0"
                                                       />
                                        </Border>
                                    </Grid>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </chartingToolkit:LinearAxis.AxisLabelStyle>
            </chartingToolkit:LinearAxis>
            <chartingToolkit:CategoryAxis Orientation="X"
                                        Title="Percentage Increase in Bid Value"
                                        Location="Bottom"
                                        BorderThickness="0.5" 
                                       >

                <chartingToolkit:CategoryAxis.AxisLabelStyle>
                    <Style TargetType="chartingToolkit:AxisLabel" >
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="chartingToolkit:AxisLabel">
                                    <Grid Background="Transparent">
                                        <Border x:Name="AxisLabelMarker"
                                                Background="Transparent"
                                                BorderBrush="Blue"
                                                BorderThickness="0"
                                                >
                                            <TextBlock Text="{Binding}"
                                                       Grid.Column="0"
                                                       />
                                        </Border>
                                    </Grid>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </chartingToolkit:CategoryAxis.AxisLabelStyle>
            </chartingToolkit:CategoryAxis>
            <chartingToolkit:LinearAxis x:Name="RightYAxis"
                                        Orientation="Y"
                                        Location="Right"
                                        BorderThickness="0.5"
                                        >
                <chartingToolkit:LinearAxis.AxisLabelStyle>
                    <Style TargetType="chartingToolkit:AxisLabel">
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="chartingToolkit:AxisLabel">
                                    <TextBlock Text="{Binding}"
                                               />
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </chartingToolkit:LinearAxis.AxisLabelStyle>
            </chartingToolkit:LinearAxis>
        </chartingToolkit:Chart.Axes>

1 Ответ

3 голосов
/ 18 февраля 2010

Если вы не укажете минимальные и максимальные значения на оси, инструментарий будет автоматически рассчитывать значения для них. Если я правильно помню, что в прошлый раз, когда я смотрел на исходный код, он пытается центрировать заданные значения в пределах 80% центральной части диаграммы, он корректирует минимальные и максимальные значения оси для достижения этого.

Поскольку вы знаете, что диапазон равен (0, 1000), просто добавьте соответствующие свойства Minimum и Maximum к LinearAxis.

...