none
Farbe in WPF Chart setzen RRS feed

  • Frage

  • Hallo,

    ich lasse einen Kuchenchart mit Hilfe des Datavisualisation Toolkits anzeigen.

    Allerdings haben die Kuchenstücke immer verschiedene Farben. Ich möchte feste Farben haben.

    Ich habe schon viel probiert aber nichts funktioniert wirklich.

    <chartingToolkit:Chart x:Name="Kuchencharthintergrund" Grid.Row="1" Grid.RowSpan="17" Grid.Column="3" Grid.ColumnSpan="2" VerticalAlignment="Stretch" Title="Auswertung des Auftrags">
    
                                <chartingToolkit:PieSeries x:Name="Kuchenchart" Background="#FFC33B3B" DependentValuePath="Value" IndependentValuePath="Key" ItemsSource="{Binding}" >
                                    
                                </chartingToolkit:PieSeries>
                                <chartingToolkit:PieSeries DependentValueBinding="{x:Null}" DependentValuePath="{x:Null}" IndependentValueBinding="{x:Null}" IndependentValuePath="{x:Null}" SeriesHost="{x:Null}">
                                    <chartingToolkit:PieSeries.Clip>
                                        <RectangleGeometry/>
                                    </chartingToolkit:PieSeries.Clip>
                                </chartingToolkit:PieSeries>
                            </chartingToolkit:Chart>

    Mein die Daten füge ich über Datenbindung hinzu:

     List<KeyValuePair<string, int>> valueList = new List<KeyValuePair<string, int>>();
                        valueList.Add(new KeyValuePair<string, int>("Gut", gesamtgut));
                        valueList.Add(new KeyValuePair<string, int>("Schlecht", gesamtschlecht));
    
                        Kuchencharthintergrund.Title = "Auswertung Auftrag: " + Auswertung_serie_txt_sql_Auftragsnummer.Text;
    
                        Kuchenchart.DataContext = valueList;
    

    Was muss ich ändern, dass das "gute" Kuchenstück grün und das schlecht "rot" angezeigt wird?

    Montag, 10. August 2015 07:47

Antworten

  • Hi,
    ich gehe davon aus, dass Du das WPF Toolkit nutzt. Darin enthalten ist das Chart im Namensraum System.Windows.Controls.DataVisualization.Charting und allgemeine Klassen im übergeordneten Namensraum System.Windows.Controls.DataVisualization. Am einfachsten ist es zwei Deklarationen für den Zugriff einzufügen, z.B. so:

    <Window x:Class="WpfApplication1CS.Window01"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:WpfApplication1CS"
            mc:Ignorable="d"
            Title="Window01" Height="300" Width="300"
            xmlns:chartingToolkit="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit"
            xmlns:visualizationToolkit="clr-namespace:System.Windows.Controls.DataVisualization;assembly=System.Windows.Controls.DataVisualization.Toolkit">
      <Window.Resources>
        <local:Window01VM x:Key="vm"/>
      </Window.Resources>
      <Grid DataContext="{Binding Source={StaticResource vm}}">
        <chartingToolkit:Chart  
          Name="pieChart" 
          Title="Pie Series Demo">
          <chartingToolkit:Chart.Palette>
            <visualizationToolkit:ResourceDictionaryCollection>
              <ResourceDictionary>
                <Style x:Key="DataPointStyle" TargetType="Control">
                  <Setter Property="Background" Value="Green"/>
                </Style>
              </ResourceDictionary>
              <ResourceDictionary>
                <Style x:Key="DataPointStyle" TargetType="Control">
                  <Setter Property="Background" Value="Red"/>
                </Style>
              </ResourceDictionary>
            </visualizationToolkit:ResourceDictionaryCollection>
          </chartingToolkit:Chart.Palette>
          <chartingToolkit:PieSeries 
            DependentValuePath="Value" 
            IndependentValuePath="Key" 
            ItemsSource="{Binding Serie}" 
            IsSelectionEnabled="True">
          </chartingToolkit:PieSeries>
        </chartingToolkit:Chart>
      </Grid>
    </Window>
    


    --
    Viele Grüsse
    Peter Fleischer (MVP, Partner)
    Meine Homepage mit Tipps und Tricks

    Dienstag, 11. August 2015 05:20
  • Hallo,

    ich kann es werde nicht selbst testen, jedoch fand ich diese Frage hier und das klingt mMn ganz passend zu deinem Problem. Vielleicht hilft dir das schon mal weiter, wenn nicht dann melde dich einfach noch mal. Dann überprüfe ich das sobald ich wieder an meinem PC sitze.


    Tom Lambert - .NET (C#) MVP
    Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Montag, 10. August 2015 08:06
    Moderator
  • Hallo,

    das kann man über die Chart.Palette machen. Ungefähr so:

    <chartingToolkit:Chart.Palette>
                                <visualizationToolkit:ResourceDictionaryCollection>
                                    
                                    <ResourceDictionary>
                                        <Style x:Key="DataPointStyle" TargetType="Control">
                                            <Setter Property="Background" Value="Green"/>
                                        </Style>
                                    </ResourceDictionary>
                                    <ResourceDictionary>
                                        <Style x:Key="DataPointStyle" TargetType="Control">
                                            <Setter Property="Background" Value="Red"/>
                                        </Style>
                                    </ResourceDictionary>
                                </visualizationToolkit:ResourceDictionaryCollection>
                            </chartingToolkit:Chart.Palette>

    Grüße

     

    Montag, 10. August 2015 09:21
  • Suchst Du WPF Toolkit Data Visualization Controls oder was anderes?

    Grüße

    Montag, 10. August 2015 10:29

Alle Antworten

  • Hallo,

    ich kann es werde nicht selbst testen, jedoch fand ich diese Frage hier und das klingt mMn ganz passend zu deinem Problem. Vielleicht hilft dir das schon mal weiter, wenn nicht dann melde dich einfach noch mal. Dann überprüfe ich das sobald ich wieder an meinem PC sitze.


    Tom Lambert - .NET (C#) MVP
    Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Montag, 10. August 2015 08:06
    Moderator
  • Hallo,

    das kann man über die Chart.Palette machen. Ungefähr so:

    <chartingToolkit:Chart.Palette>
                                <visualizationToolkit:ResourceDictionaryCollection>
                                    
                                    <ResourceDictionary>
                                        <Style x:Key="DataPointStyle" TargetType="Control">
                                            <Setter Property="Background" Value="Green"/>
                                        </Style>
                                    </ResourceDictionary>
                                    <ResourceDictionary>
                                        <Style x:Key="DataPointStyle" TargetType="Control">
                                            <Setter Property="Background" Value="Red"/>
                                        </Style>
                                    </ResourceDictionary>
                                </visualizationToolkit:ResourceDictionaryCollection>
                            </chartingToolkit:Chart.Palette>

    Grüße

     

    Montag, 10. August 2015 09:21
  • Danke schon mal für eure Antworten

    wo finde ich das visualizationToolkit?

    Montag, 10. August 2015 10:01
  • Suchst Du WPF Toolkit Data Visualization Controls oder was anderes?

    Grüße

    Montag, 10. August 2015 10:29
  • Hi,
    ich gehe davon aus, dass Du das WPF Toolkit nutzt. Darin enthalten ist das Chart im Namensraum System.Windows.Controls.DataVisualization.Charting und allgemeine Klassen im übergeordneten Namensraum System.Windows.Controls.DataVisualization. Am einfachsten ist es zwei Deklarationen für den Zugriff einzufügen, z.B. so:

    <Window x:Class="WpfApplication1CS.Window01"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:WpfApplication1CS"
            mc:Ignorable="d"
            Title="Window01" Height="300" Width="300"
            xmlns:chartingToolkit="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit"
            xmlns:visualizationToolkit="clr-namespace:System.Windows.Controls.DataVisualization;assembly=System.Windows.Controls.DataVisualization.Toolkit">
      <Window.Resources>
        <local:Window01VM x:Key="vm"/>
      </Window.Resources>
      <Grid DataContext="{Binding Source={StaticResource vm}}">
        <chartingToolkit:Chart  
          Name="pieChart" 
          Title="Pie Series Demo">
          <chartingToolkit:Chart.Palette>
            <visualizationToolkit:ResourceDictionaryCollection>
              <ResourceDictionary>
                <Style x:Key="DataPointStyle" TargetType="Control">
                  <Setter Property="Background" Value="Green"/>
                </Style>
              </ResourceDictionary>
              <ResourceDictionary>
                <Style x:Key="DataPointStyle" TargetType="Control">
                  <Setter Property="Background" Value="Red"/>
                </Style>
              </ResourceDictionary>
            </visualizationToolkit:ResourceDictionaryCollection>
          </chartingToolkit:Chart.Palette>
          <chartingToolkit:PieSeries 
            DependentValuePath="Value" 
            IndependentValuePath="Key" 
            ItemsSource="{Binding Serie}" 
            IsSelectionEnabled="True">
          </chartingToolkit:PieSeries>
        </chartingToolkit:Chart>
      </Grid>
    </Window>
    


    --
    Viele Grüsse
    Peter Fleischer (MVP, Partner)
    Meine Homepage mit Tipps und Tricks

    Dienstag, 11. August 2015 05:20
  • Hallo MaRo0007,

    Vielen Dank für Deine Frage und Deinen Beitrag in den Foren. Ich möchte Dich noch auf das Markieren als Antwort aufmerksam machen:

    ·          Lösungsbeiträge als “Die Antwort“ markieren
    Bitte markieren Sie den Beitrag, der zur Lösung geführt hat, als "Die Antwort". Durch Bewerten eines Beitrags als "Die Antwort" können andere Teilnehmer die Lösung schneller finden. Außerdem können Sie dem Benutzer, der die Antwort eingereicht hat, für seinen Beitrag danken und zur Steigerung der Antwortqualität in der Diskussionsgruppe beitragen.
    [Quelle:
    Forenregeln]

    Gruß,
    Dimitar


    Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Freitag, 21. August 2015 09:04
    Moderator