获取LineSeries2D for DevExpress ChartControl的代码后面的默认系列颜色

时间:2013-06-28 08:02:35

标签: wpf charts devexpress series brush

我在LineSeries2D中有一些XYDiagram2D.Series个元素。我想在代码后面获取Brush属性。当我尝试下面的代码时,系列画笔属性为null。仅当我在XAML中设置了刷子属性时,我得到了正确的结果。但是如果我没有在XAML中设置它,我希望得到默认情况下系列着色的Brush而不是null。

<dxc:XYDiagram2D.Series>
    <dxc:LineSeries2D ArgumentScaleType="Numerical" x:Name="series"
                                          ArgumentDataMember="Time"
                                          ValueDataMember="Value"
                                          DataSource="{Binding Path=ListaChart}">      
    </dxc:LineSeries2D>

    <dxc:LineSeries2D ArgumentScaleType="Numerical" x:Name="series1"
                                          ArgumentDataMember="Time"
                                          ValueDataMember="Value"
                                          DataSource="{Binding Path=ListaChart2}">
    </dxc:LineSeries2D>
</dxc:XYDiagram2D.Series>

并在代码背后:

chart.UpdateData();
chart.UpdateLayout();

foreach (var targetSeries in chart.Diagram.Series.OfType<LineSeries2D>())
{
    vm.SelectedChannelBrush = targetSeries.Brush;
}

if (PNUsLB.SelectedIndex == 0)
{
    vm.SelectedChannelBrush = series.Brush;
}
else
{
    vm.SelectedChannelBrush = series1.Brush;
}

ChartControl的名称是“图表”。在运行时绘制图表后,我的问题是series.Brushseries1.BrushtargetSeries.Brush为空。 那么如何在代码后面获得默认的系列颜色?

2 个答案:

答案 0 :(得分:1)

我今天心中也有同样的想法。 要更改画笔的颜色,您必须处理从图表控件中抛出的事件。

  1. 您的图表应该可以触发事件:

    chartControl.CustomDrawCrosshair+=new CustomDrawCrosshairEventHandler(chartControl_CustomDrawCrosshair);
    
  2. 使用函数处理已触发的事件:

    public void chartControl_CustomDrawCrosshair(object sender, DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs e)
    {
         e.CrosshairLineElement.Brush = Brushes.DeepSkyBlue;
    }
    
  3. 以下是可用于画笔的所有Windows颜色:

    http://i.msdn.microsoft.com/dynimg/IC24340.png

    祝福, Mijat

答案 1 :(得分:0)

我认为您必须检查palette属性。你应该找到here一个完整的答案。