【问题标题】:WPF Toolkit Charting: how to remove line series data points and still get different line series colors?WPF Toolkit Charting:如何删除线系列数据点并仍然获得不同的线系列颜色?
【发布时间】:2011-11-24 11:00:13
【问题描述】:

我使用 Jim McCurdy 对此StackOverflow question 的非常有用的回答来避免在具有多行系列的 WPF 工具包图表中绘制数据点。

但是:如果我不应用 Jim 的 XAML 样式,所有图表线都会获得不同的颜色(当然以显示数据点为代价),但是当我应用“无数据点”样式时,线条颜色是恒定的,导致图表中的所有线条具有相同的颜色。

是否可以扩展 XAML 样式,以便图表中每个新线条系列的线条颜色自动不同?

如果我正确地解释了这个StackOverflow question 的答案,那么问题很容易以编程方式解决,但如果可能的话,我更喜欢基于 XAML 的解决方案。

【问题讨论】:

    标签: c# wpf charts wpftoolkit


    【解决方案1】:

    要在 XAML 中解决此问题,一种方法是为要分配给 LineSeries 的每种颜色创建不同的 DataPoint 样式。例如,我只是这样做了:

    <Style x:Key="InvisibleDataPointBlue" TargetType="{x:Type charting:DataPoint}">
        <Setter Property="Background" Value="Blue"/>
        <Setter Property="Template" Value="{x:Null}"/>
    </Style>
    
    <Style x:Key="InvisibleDataPointRed" TargetType="{x:Type charting:DataPoint}">
        <Setter Property="Background" Value="Red"/>
        <Setter Property="Template" Value="{x:Null}"/>
    </Style>
    
    <Style x:Key="InvisibleDataPointGreen" TargetType="{x:Type charting:DataPoint}">
        <Setter Property="Background" Value="Green"/>
        <Setter Property="Template" Value="{x:Null}"/>
    </Style>
    

    可能有更好的方法来动态分配新颜色,但如果您的需求不高,也可以这样做。

    【讨论】:

    • 亲爱的 PIntag,非常感谢您的回复。我在代码中动态定义了不同的系列,所以我仍然需要为代码中的每个新行系列显式分配一个新样式。显然,如果我不更改样式,则每个新行系列都会隐式更改颜色,当数据点模板为空时,最好实现相同的功能。但无论如何,我感谢您抽出宝贵时间提供此替代解决方案。
    • 不客气——很抱歉,我没有更通用的解决方案来处理每个新系列的隐式颜色变化。一定有办法做到这一点,但是几个月前我在看这个问题时找不到答案。上面的解决方案对我的应用来说已经足够了,所以我没有花更多的时间研究这个问题。
    猜你喜欢
    • 1970-01-01
    • 2012-02-29
    • 1970-01-01
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多