【问题标题】:WPF Toolkit - set Line Series polyline color with bindingWPF Toolkit - 使用绑定设置 Line Series 折线颜色
【发布时间】:2015-11-08 12:58:27
【问题描述】:

我在图表中添加了 LineSeries。代码如下:

<chartingToolkit:LineSeries Name="line" IndependentValueBinding="{Binding Path=Key}" DependentValueBinding="{Binding Path=Value}">
    <chartingToolkit:LineSeries.Template>
        <ControlTemplate TargetType="chartingToolkit:LineSeries">
            <Canvas x:Name="PlotArea">
                <Polyline x:Name="polyline"
              Points="{TemplateBinding Points}" 
              Stroke="Green" 
              Style="{TemplateBinding PolylineStyle}" />
            </Canvas>
        </ControlTemplate>
    </chartingToolkit:LineSeries.Template>
</chartingToolkit:LineSeries>

这工作正常。我的折线是绿色的。但是当我尝试使用绑定设置 Polyline.Stroke 颜色时,我的线变得不可见。代码如下:

<chartingToolkit:LineSeries Name="line" IndependentValueBinding="{Binding Path=Key}" DependentValueBinding="{Binding Path=Value}">
    <chartingToolkit:LineSeries.Template>
        <ControlTemplate TargetType="chartingToolkit:LineSeries">
            <Canvas x:Name="PlotArea">
                <Polyline x:Name="polyline"
              Points="{TemplateBinding Points}" 
              Stroke="{Binding Path=MyColor}" 
              Style="{TemplateBinding PolylineStyle}" />
            </Canvas>
        </ControlTemplate>
    </chartingToolkit:LineSeries.Template>
</chartingToolkit:LineSeries>

我无法弄清楚这似乎是什么问题。

【问题讨论】:

    标签: c# wpf binding wpftoolkit


    【解决方案1】:

    您可能使用了错误的颜色类型,您应该使用SolidColorBrush

     private SolidColorBrush _chartColor = new SolidColorBrush(Colors.Aqua);
        public SolidColorBrush ChartColor
        {
            get
            {
                return _chartColor;
            }
    
            set
            {
                if (_chartColor == value)
                {
                    return;
                }
    
                _chartColor = value;
            }
        }
    

    那么绑定应该可以完美运行

    <chartingToolkit:Chart   Title="Line Series"  
    VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Margin="0"  >
            <chartingToolkit:LineSeries Name="line" ItemsSource="{Binding LineSeriesData}"
                IndependentValueBinding="{Binding Path=Key}"
                DependentValueBinding="{Binding Path=Value}">
                <chartingToolkit:LineSeries.Template>
                    <ControlTemplate TargetType="chartingToolkit:LineSeries">
                        <Canvas x:Name="PlotArea">
                            <Polyline x:Name="polyline"
                                      Points="{TemplateBinding Points}" 
                                      Stroke="{Binding ChartColor}" 
                                      Style="{TemplateBinding PolylineStyle}" />
                        </Canvas>
                    </ControlTemplate>
                </chartingToolkit:LineSeries.Template>
    
            </chartingToolkit:LineSeries>
        </chartingToolkit:Chart>
    

    【讨论】:

    • 我使用了 SolidColorBrush 但它不起作用...您还有其他想法吗?
    • 我给你的代码对我来说很好,确保你的“MyColor”不为空,或者发布更多你的代码,这样我们就无法找出问题所在!
    猜你喜欢
    • 2017-08-30
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 2011-02-20
    • 1970-01-01
    • 1970-01-01
    • 2021-11-10
    • 1970-01-01
    相关资源
    最近更新 更多