2015-03-23 14 views
5

Ultimamente ho utilizzato OxyPlot e mi chiedevo se esiste un modo per ignorare la tavolozza colori predefinita di PlotSeries/PlotModel?Ignora tavolozza colori predefinita OxyPlot

So che posso impostare il colore singolarmente per ogni serie, ma sarebbe bello avere una matrice di colori e quindi applicarlo al modello/serie.

risposta

7

È possibile modificare l'elenco DefaultColors in PlotView 'Model s:

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

Per rendere ancora più facile, OxyPalettes' metodi di classe s può essere utilizzato:

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

Aggiunta all'altro rispondi, se vuoi usare lo stesso set di colori per ogni trama della tua applicazione, puoi impostare quelli nelle tue risorse xaml. Se, ad esempio, si desidera utilizzare il valore predefinito Seaborn palette, è possibile aggiungere quanto segue al numero App.xaml:

<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>