1

LineSeries2D在 a 中有一些元素XYDiagram2D.Series。我想Brush在后面的代码中获取属性。当我尝试下面的代码系列画笔属性为空。只有当我在 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.Brush,series1.Brush并且targetSeries.Brush在运行时绘制图表后为空。那么如何在后面的代码中获取默认系列颜色呢?

4

2 回答 2

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;
    }
    

以下是可用于画笔的所有 Windows 颜色:

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

最好的祝愿,米贾特

于 2013-12-03T12:15:37.670 回答
0

我认为你必须检查palette财产。你应该在这里找到完整的答案。

于 2013-06-28T09:09:51.797 回答