我在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.Brush
,series1.Brush
和targetSeries.Brush
为空。
那么如何在代码后面获得默认的系列颜色?
答案 0 :(得分:1)
我今天心中也有同样的想法。 要更改画笔的颜色,您必须处理从图表控件中抛出的事件。
您的图表应该可以触发事件:
chartControl.CustomDrawCrosshair+=new CustomDrawCrosshairEventHandler(chartControl_CustomDrawCrosshair);
使用函数处理已触发的事件:
public void chartControl_CustomDrawCrosshair(object sender, DevExpress.Xpf.Charts.CustomDrawCrosshairEventArgs e)
{
e.CrosshairLineElement.Brush = Brushes.DeepSkyBlue;
}
以下是可用于画笔的所有Windows颜色:
祝福, Mijat
答案 1 :(得分:0)
我认为您必须检查palette
属性。你应该找到here一个完整的答案。