如何从WinRT XAML Toolkit图表中设置和获取行系列颜色

时间:2013-07-11 13:39:46

标签: xaml windows-8 charts windows-runtime winrt-xaml-toolkit

ANSWER

谢谢Filip,最后我找到了设置颜色的方法。我只需要在Background中添加DataPointStyle属性。我在这里发布我的答案。还找到了一种如何修改默认工具提示的方法。

Showing lines with different colors on a Silverlight Toolkit’s LineChart?

Using a custom ToolTip in Silverlight charting

<charting:LineSeries.DataPointStyle>
    <Style TargetType="charting:LineDataPoint">
        <Setter Property="Width" Value="17" />
        <Setter Property="Height" Value="17" />
        <Setter Property="Background" Value="Lime"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="charting:LineDataPoint">
                    <Grid>
                        <ToolTipService.ToolTip>
                            <ContentControl Content="{Binding Value,Converter={StaticResource MyConv},ConverterParameter=TEST}"/>
                        </ToolTipService.ToolTip>
                        <Ellipse Fill="Lime" Stroke="Lime" StrokeThickness="3" />
                    </Grid>
                </ControlTemplate>

            </Setter.Value>
        </Setter>
    </Style>
</charting:LineSeries.DataPointStyle>

问题1

我在图表中创建多个折线图系列。现在,WinRT XAML Toolkit以随机方式为每个系列分配颜色。我使用自定义样式的数据点,所以当我使用自定义样式时颜色的随机性消失。那么如何设置或获得系列的随机颜色?如果我可以获得颜色,那么我可以在datapoint中使用该颜色,如果我可以设置颜色,那么我将自己生成随机颜色。

问题2

此外,当鼠标悬停在数据点上时,工具提示会显示相关值,但我想更详细地说明如何实现这一点?

这是我的自定义样式代码。

<charting:Chart x:Name="LineChart" Title="Line Chart" Margin="70,0">
    <charting:LineSeries
                Title="Population 1"
                IndependentValueBinding="{Binding Name}"
                DependentValueBinding="{Binding Value}"
                IsSelectionEnabled="True">
            <charting:LineSeries.DataPointStyle>
                <Style TargetType="charting:LineDataPoint">
                    <Setter Property="Width" Value="17" />
                    <Setter Property="Height" Value="17" />
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="charting:LineDataPoint">
                                <Ellipse Fill="Green" Stroke="Green" StrokeThickness="3" />
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </charting:LineSeries.DataPointStyle>
        </charting:LineSeries>

    <charting:LineSeries
            Title="Population 2"
            IndependentValueBinding="{Binding Name}"
            DependentValueBinding="{Binding Value}"
            IsSelectionEnabled="True" Foreground="Blue">
        <charting:LineSeries.DataPointStyle>
            <Style TargetType="charting:LineDataPoint">
                <Setter Property="Width" Value="17" />
                <Setter Property="Height" Value="17" />
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="charting:LineDataPoint">
                            <Ellipse Fill="Red" Stroke="Red" StrokeThickness="3" />
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </charting:LineSeries.DataPointStyle>
    </charting:LineSeries>
</charting:Chart>

随机颜色的图表(NO CUSTOM DATAPOINT STYLE)

enter image description here

没有随机颜色的图表(WITH CUSTOM DATAPOINT STYLE)[你可以看到两条线都有黄色]

enter image description here

1 个答案:

答案 0 :(得分:0)

尝试Bing silverlight toolkit chart custom line color会产生一些可能有用的页面,例如this。它应该与WinRT XAML工具包大致相同,但是他们自定义基于Silverlight的模板 - 您需要自定义基于WinRT XAML工具包的模板,您可以尝试使用Blend / Visual Studio设计器提取或获取您可以从CodePlex抓取来源的原始模板。