Ist es möglich, die Farbe des Balkens basierend auf dem Wert einzustellen, zum Beispiel mein min war 0 und max war 10, wenn mein Wert zwischen 0 und 3 ist, färbt den Balken grün, wenn er zwischen 3 und 7 ist Blau, und wenn es zwischen 7 und 10 ist, wird es gelb.Windows UWP SFChart - Spalten- oder Balkendiagrammfarbe basierend auf Wert?
2
A
Antwort
2
Ja. Es ist möglich, die Farbe basierend auf dem Wert festzulegen. Wir können Ihre Anforderung erfüllen, indem wir die individuelle Balken-/Spaltenschablonenfarbe anhand der CustomTemplate-Eigenschaft gemäß dem folgenden Code-Snippet anpassen.
Code Snippet [XAML]:
<Grid.Resources>
<local:ColorConverter x:Key="conv1"/>
<DataTemplate x:Key="columnTemplate1">
<Canvas>
<Rectangle Canvas.Left="{Binding RectX}" Canvas.Top="{Binding RectY}" Height="{Binding Height}"
Width="{Binding Width}" Stretch="Fill"
Fill="{Binding Converter={StaticResource conv1}}"></Rectangle>
</Canvas>
</DataTemplate>
</Grid.Resources>
<Grid.DataContext>
<local:TestingValuesCollection/>
</Grid.DataContext>
<syncfusion:SfChart x:Name="chart" >
<syncfusion:SfChart.SecondaryAxis>
<syncfusion:NumericalAxis Minimum="0" Maximum="10"/>
</syncfusion:SfChart.SecondaryAxis>
<syncfusion:ColumnSeries x:Name="series1" ItemsSource = "{Binding TestingModel}" XBindingPath = "X"
CustomTemplate="{StaticResource columnTemplate1}" YBindingPath = "Y">
</syncfusion:ColumnSeries>
</syncfusion:SfChart>
Code Snippet [C#]:
public class ColorConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
ColumnSegment segment = value as ColumnSegment;
//First region value declaration.
DoubleRange firstRegion = new DoubleRange(0, 3);
SolidColorBrush firstRegionBrush = new SolidColorBrush(Colors.Green);
//Second region value declaration.
DoubleRange secondRegion = new DoubleRange(3, 7);
SolidColorBrush secondRegionBrush = new SolidColorBrush(Colors.Blue);
//Third region value declaration.
DoubleRange thirdRegion = new DoubleRange(7, 10);
SolidColorBrush thirdRegionBrush = new SolidColorBrush(Colors.Yellow);
if (segment.YData >= firstRegion.Start && segment.YData <= firstRegion.End)
return firstRegionBrush;
else if (segment.YData >= secondRegion.Start && segment.YData <= secondRegion.End)
return secondRegionBrush;
else if (segment.YData >= thirdRegion.Start && segment.YData <= thirdRegion.End)
return thirdRegionBrush;
return segment.Interior;
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
Wir können der Lage, mehr Region in Konverter hinzuzufügen und das Rück jede Farbe in die Bar/Spalte.
Wir haben diesen Code basierend auf dem y-Achsenwert erstellt. Wenn Ihre Anforderung auf dem X-Achsenwert basiert, müssen Sie segment.XData überprüfen, anstatt segment.YData im Konverter zu überprüfen.
Verwandte Themen
- 1. Wählen Sie Zeilen aus einem DataFrame basierend auf Null-Wert in bestimmten Spalten oder Spalten
- 2. SQL Pivot basierend auf Wert zwischen zwei Spalten
- 3. Grabber zum Spalten in UWP
- 4. Zugriff auf Kontakte in Windows 10 UWP?
- 5. Split Spalte in mehrere Spalten basierend auf Spalte Wert
- 6. Anzahl Vorkommen von Werten basierend auf Wert in verschiedenen Spalten
- 7. pandas: Spalten basierend auf dem Wert in letzter Reihe
- 8. Blattname basierend auf Spalte Wert
- 9. Beitritt basierend auf Spalten Priorität
- 10. Formattable basierend auf mehreren Spalten
- 11. R - Einen Faktor basierend auf dem Wert in einer oder mehreren anderen Spalten bestellen
- 12. Windows 10 UWP-Befehlsleiste
- 13. UWP Windows 10 App Speicher auf Navigation
- 14. Windows UWP als Bildschirmschoner?
- 15. DAX: Farbdaten, basierend auf Wert
- 16. PointerCaptureLost C# UWP Windows 10
- 17. Auswählen von Indizes basierend auf Spalten-/Tabellennamen
- 18. Löschen bestimmter Spalten basierend auf den Bedingungen
- 19. XmlUnit-Reihenfolge basierend auf Wert
- 20. Doppelte oder Linien basierend auf Spaltenwert replizieren
- 21. Ausgabe in Zeile oder Spalte basierend auf Wert
- 22. Rohrfilter basierend auf zwei oder mehr Attribute Wert in Angular2
- 23. Zeigen oder verbergen div basierend auf ausgewählten Wert
- 24. Flexbox-Element ausblenden, basierend auf Nachbarelementgröße oder -wert
- 25. XSLT Anwenden-Vorlagen oder Anruf-Vorlage basierend auf XML-Wert
- 26. Abbrechen Join-Bedingung basierend auf Spalte Wert
- 27. Joining 3 Tabellen basierend auf gemeinsamen Spalten
- 28. Multibinding unter Windows 10 UWP
- 29. Windows 10 UWP Single Sign-On
- 30. berechnen neuer Wert basierend auf dem Wert
Ok Ich habe es von einer Spalte Serie zu arbeiten, aber wenn ich es mit BarSeries versuchte nichts in der Grafik (es gibt keine Balken) – erotavlas
Egal, ich habe es zur Arbeit, ich musste BarSegment im ColorConverter verwenden Klasse bei Verwendung des BarSeries-Diagramms. Danke, es funktioniert perfekt! – erotavlas