2013-06-28 353 views
1

我在XYDiagram2D.Series中有一些LineSeries2D元素。我想在後面的代碼中獲得Brush屬性。當我嘗試下面的代碼時,系列畫筆屬性爲空。僅當我在XAML中設置畫筆屬性時,我會得到正確的結果。但是如果我沒有在XAML中設置它,我預計會得到Brush,默認情況下系列會被着色而不是null。在DevExpress ChartControl中爲LineSeries2D獲取默認的系列顏色

<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.BrushtargetSeries.Brush爲空。 那麼我如何在代碼後面得到默認的系列顏色?

回答

0

我認爲你必須檢查palette屬性。你應該找到here完整的答案。

+0

我使用WPF ChartControl,而不是ASP.NET控件。此外,我沒有看到該系列的任何視圖屬性。 –

+0

我修復了我的答案(對不起):) – Fares

+0

我沒有設法獲取托盤中的顏色(我不想在該示例中定義CustomPallet)。我想獲得使用的默認畫筆。同樣對於每個畫筆我都需要知道它屬於哪個通道。我認爲LineSeries2D對象上應該有一些不在ChartControl上的東西。 –

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

最良好的祝願, Mijat