2015-03-23 14 views
5

Ich habe in letzter Zeit verwendet, und fragte mich, ob es eine Möglichkeit gibt, die Standard-Farbpalette von PlotSeries/PlotModel zu überschreiben?Override OxyPlot Standard-Farbpalette

Ich weiß, dass ich die Farbe für jede Reihe einzeln einstellen kann, aber es wäre schön, eine Reihe von Farben zu haben und sie dann auf das Modell/die Reihe anzuwenden.

Antwort

7

können Sie ändern die DefaultColors Liste in PlotView 's Model:

plotView.Model.DefaultColors = new List<OxyColor> 
     { 
      OxyColors.Red, 
      OxyColors.Green, 
      OxyColors.Blue, 
      OxyColor.FromRgb(0x20, 0x4A, 0x87) 
     }; 

Um es noch einfacher zu machen, OxyPalettes' s Klassenmethoden verwendet werden können:

plotView.Model.DefaultColors = OxyPalettes.Jet(plotView.Model.Series.Count).Colors; 
2

zum anderen Hinzufügen antwort: Wenn Sie für jedes Diagramm in Ihrer Anwendung die gleichen Farben verwenden möchten, können Sie diese in Ihren XAML-Ressourcen festlegen. Wenn Sie beispielsweise den Standardwert Seaborn palette verwenden möchten, können Sie Folgendes zu Ihrem App.xaml hinzufügen:

<Application.Resources> 
    <ResourceDictionary> 
     <x:Array Type="Color" x:Key="SeabornColors"> 
      <Color>#4c72b0</Color> 
      <Color>#55a868</Color> 
      <Color>#c44e52</Color> 
      <Color>#8172b2</Color> 
      <Color>#ccb974</Color> 
      <Color>#64b5cd</Color> 
     </x:Array> 
     <Style TargetType="oxy:Plot"> 
      <Setter Property="DefaultColors" Value="{StaticResource SeabornColors}"/> 
     </Style> 
    </ResourceDictionary> 
</Application.Resources>