Изменение внешнего вида точки данных ряда - PullRequest
2 голосов
/ 17 февраля 2011

Я новичок в Silverlight, и Silverlight.Controls.Toolkit подвергался воздействию только в течение нескольких недель (у меня также нет опыта работы с WPF).

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

Например, ряд линий, который показывает точки данных, в настоящее время всегда показывает точки в виде кружков. Я хочу, чтобы пользователь мог выбрать фигуру, которая будет использоваться для рисования точек данных.

Единственный способ, которым я достиг этого, - это определение стилей в словаре ресурсов:

<Style x:Key="SquareDataPointStyle" TargetType="charting:LineDataPoint">
        <Setter Property="Background" Value="Black" />
        <Setter Property="BorderBrush" Value="Gray"/>
        <Setter Property="BorderThickness" Value="1"/>
        <Setter Property="IsTabStop" Value="False" />
        <Setter Property="Width" Value="8" />
        <Setter Property="Height" Value="8" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="charting:LineDataPoint">
                    <Grid x:Name="Root" Opacity="1">
                        <VisualStateManager.VisualStateGroups>
                            ...
                        </VisualStateManager.VisualStateGroups>
                        <ToolTipService.ToolTip>
                            <ContentControl Content="{TemplateBinding FormattedDependentValue}" />
                        </ToolTipService.ToolTip>
                        <Rectangle Stroke="{TemplateBinding BorderBrush}" Fill="{TemplateBinding Background}" />
                        <Rectangle x:Name="SelectionHighlight" Opacity="0" Fill="Red" />
                        <Rectangle x:Name="MouseOverHighlight" Opacity="0" Fill="White" />
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

.. и затем программная установка стиля точки данных с использованием ключа предопределенного стиля:

series.DataPointStyle = (Style)Application.Current.Resources["SquareDataPointStyle"];            

Это не очень хороший способ сделать это, так как определение стиля является длинным для каждого стиля DataPoint, и я хочу изменить только то, какая фигура рисуется - не фон / подсказка и т. Д.

Каким был бы самый чистый / самый «правильный» способ сделать это?

...