2017-03-02 4 views
2

Ich versuche, einige einfache Liniendiagramme zu plotten ... Ich dachte. Ich habe dies bisher getan:WPF DVC: Lineseries Stil und Achsen Settings mit C#

XAML

<DVC:Chart x:Name="DVA_Cycle_Chart" BorderThickness="0" BorderBrush="{x:Null}" > 
<DVC:Chart.Axes> 
    <DVC:LinearAxis Orientation="X" Title="Zeit"/> 
     <DVC:LinearAxis Orientation="Y" Location="Left" Title="Volumenstrom Q "/> 
     <DVC:LinearAxis Orientation="Y" Location="Right" Title="Druck p"/> 
    </DVC:Chart.Axes> 
</DVC:Chart> 

Dies erzeugt ein Diagramm, wo die x-Achse mit „Zeit“ markiert ist, die linke y-Achse mit „Volumenstrom Q“ und dem rechten y -Achse mit "Druck p". Fein. Jetzt habe ich zwei Lineseries:

C#

KeyValuePair<double, double>[] single_pressure_KeyValuePair = new KeyValuePair<double, double>[2]; 
KeyValuePair<double, double>[] single_flow_rate_KeyValuePair = new KeyValuePair<double, double>[2]; 
    for (int i = 0; i < 2; i++) 
     { 
     single_pressure_KeyValuePair[i] = new KeyValuePair<double, double>(i, 3); 
     single_flow_rate_KeyValuePair[i] = new KeyValuePair<double, double>(i, 4); 
     } 

    LineSeries single_pressure_LS = new LineSeries(); 
    single_pressure_LS.Title = "Pressure"; 
    single_pressure_LS.IndependentValueBinding = new Binding("Key"); 
    single_pressure_LS.DependentValueBinding = new Binding("Value"); 
    single_pressure_LS.ItemsSource = single_pressure_KeyValuePair; 
    DVA_Cycle_Chart.Series.Add(single_pressure_LS); 

    LineSeries single_flow_rate_LS = new LineSeries(); 
    single_flow_rate_LS.Title = "Flow Rate"; 
    single_flow_rate_LS.IndependentValueBinding = new Binding("Key"); 
    single_flow_rate_LS.DependentValueBinding = new Binding("Value"); 
    single_flow_rate_LS.ItemsSource = single_flow_rate_KeyValuePair; 
    DVA_Cycle_Chart.Series.Add(single_flow_rate_LS); 

Dies führt zu zwei einfachen horizontalen Linien! Fein. Leider sind beide Linien mit der linken Y-Achse verwandt, aber ich möchte die erste Reihe nach links und die zweite Reihe nach rechts verschieben. Wo kann ich das einrichten? Ich bevorzuge dies in C# anstelle von XAML zu tun. Kleine Zusatzfrage: Wie kann ich den Bereich einer Achse einstellen? Nehmen wir an, ich möchte x Werte zwischen x = 0.5 und x = 33.1 darstellen.

Google zeigte mir viele verwandte Beiträge, aber diese Frage wurde nicht beantwortet. Weiß jemand, wo man eine vollständige Dokumentation von DVC findet: Diagramm von WPF Toolbox?

Antwort

0

Sie können die entsprechenden LinearAxis Code aus Ihrer XAML entfernen und es in definieren Code-Behind wie folgt aus:

single_pressure_LS.DependentRangeAxis = new LinearAxis { 
     Orientation = AxisOrientation.Y, 
     Location = AxisLocation.Left, 
     Title = "Volumenstrom Q", 
     Minimum = 1, 
     Maximum = 4 }; 
    single_flow_rate_LS.DependentRangeAxis = new LinearAxis { 
     Orientation = AxisOrientation.Y, 
     Location = AxisLocation.Right, 
     Title = "Druck p", 
     Minimum = 3, 
     Maximum = 5 }; 

enter image description here

+0

Vielen Dank das funktioniert gut! Vielleicht können Sie sogar die Farbe der Datenpunkte und der Hintergrundfarbe einstellen? Wieder fand ich Beispiele in XAML nur ... –

+0

OK, um die Farbe der Linie zu beeinflussen, die ich fand, um Style DataPointStyle_Red zu verwenden = neuer Stil (typeof (DataPoint)); mit dem Setter DataPointStyle_Red.Setters.Add (neuer Setter (DataPoint.BackgroundProperty, neuer SolidColorBrush (Colors.Red))); und schließlich single_pressure_LS.DataPointStyle = DataPointStyle_Red; –