2011-02-03 3 views
1
<Window x:Class="tradtest.chart" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:toolkit="http://schemas.microsoft.com/wpf/2008/toolkit" 
xmlns:charting="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit" 

Title="chart" Height="300" Width="500"> 
<Window.Resources> 
    <Style x:Key="SimpleLineSeriesStyle" TargetType="charting:LineDataPoint"> 
     <Setter Property="Width" Value="0"/> 
     <Setter Property="Height" Value="0"/> 
    </Style> 


</Window.Resources> 
<Grid> 
    <charting:Chart x:Name="chart1" > 
     <charting:LineSeries ItemsSource="{Binding}" 

       DependentValuePath="Value" 

       IndependentValuePath="Key" 

       Title="Pet Preference" IsSelectionEnabled="True" /> 
    </charting:Chart> 

</Grid> 

marques Cocher pour axe X dans le graphique de boîte à outils WPF

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Data; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Imaging; 
using System.Windows.Shapes; 
using System.Windows.Controls.DataVisualization.Charting; 

namespace tradtest 
{ 
    /// <summary> 
    /// Interaction logic for chart.xaml 
    /// </summary> 
    public partial class chart : Window 
    { 
     void AddSeries(string title, KeyValuePair<string, decimal>[] data, SolidColorBrush linecolor) 
     { 
      LineSeries ls = new LineSeries(); 
      ls.DependentValuePath = "Value"; 
      ls.IndependentValuePath = "Key"; 
      ls.ItemsSource = data; 
      ls.Title = title; 
      Style dpstyle = ls.DataPointStyle; 
      //Style tmp1 = this.Resources["SimpleLineSeriesStyle"] as Style; 
      Style tmp1 = new Style(); 
      tmp1.Setters.Add(new Setter(LineDataPoint.BackgroundProperty, linecolor)); 
      tmp1.Setters.Add(new Setter(LineDataPoint.WidthProperty, 0.0)); 
      tmp1.Setters.Add(new Setter(LineDataPoint.HeightProperty, 0.0)); 
      //wi 
      //dpstyle = tmp1; 
      ls.DataPointStyle = tmp1; 
      //SetterBaseCollection sr = dpstyle.Setters; 
      //SetterBase sb = new Setter(Background, (object)Brushes.AliceBlue); 
      chart1.Series.Add(ls); 
     } 
     public chart(KeyValuePair<string, decimal>[] spreadseries, 
      KeyValuePair<string, decimal>[] meanspreadseries, 
      KeyValuePair<string, decimal>[] enterlongseries, 
      KeyValuePair<string, decimal>[] entershortseries, 
      KeyValuePair<string, decimal>[] exitlongseries, 
      KeyValuePair<string, decimal>[] exitshortseries) 
     { 
      InitializeComponent(); 
      chart1.Series.Clear(); 
      AddSeries("Current Spread", spreadseries, Brushes.MediumPurple); 
      AddSeries("Mean Spread", meanspreadseries, Brushes.Black); 
      AddSeries("Enter Long Spread", enterlongseries, Brushes.Red); 
      AddSeries("Enter Short Spread", entershortseries, Brushes.Red); 
      AddSeries("Exit Long Spread", exitlongseries, Brushes.Orange); 
      AddSeries("Exit Short Spread", exitshortseries, Brushes.Orange); 

     } 
    } 
} 

Je joins mon code ci-dessus. Je ne suis pas en mesure de supprimer les marques de graduation sur l'axe des X. quelqu'un peut-il s'il vous plaît des conseils?

+0

Je ne peux pas copier l'image, à la suite est l'URL du tableau: http://www.quantcode.com/uploads/img4d49673d432fb.png – paseena

+0

Il y aura une propriété sur le graphique - Je ne Je l'ai installé sur cette machine, donc je ne peux pas vérifier, mais Intellisense devrait vous montrer toutes les propriétés que vous pouvez définir. – ChrisF

+0

Voir http://stackoverflow.com/questions/2395774/silverlight-wpf-charting-toolkit-can-i-change-frequency-of-tick-marks-on-categor pour quelques conseils - pas une réponse concrète cependant. – ChrisF

Répondre

1

Vous pouvez masquer l'ensemble de l'axe X comme ceci:

<charting:LineSeries.IndependentAxis> 
    <charting:CategoryAxis Orientation="X" Visibility="Collapsed"/> 
</charting:LineSeries.IndependentAxis> 

ajouter à votre élément charting:LineSeries ou dans le code:

series.IndependentAxis = new CategoryAxis { Orientation = AxisOrientation.X, Visibility = Visibility.Collapsed }; 
+0

Merci beaucoup pour le pourboire! Malheureusement, je crée la lineeries par programme. J'ai essayé de définir le style par programmation. Mais ls.IndependentAxis me renvoie null dans le code ci-dessus et je ne peux pas imiter le code XAML ci-dessus dans le code. – paseena

+0

J'ai ajouté un exemple pour le code aussi. –

+1

Merci pour l'exemple de code. Je l'ai essayé, mais j'obtiens une excpetion ci-dessous quand j'appelle Show() sur la fenêtre contenant le graphique: "L'axe indépendant affecté ne peut pas être utilisé Cela peut être dû à une propriété Orientation non définie pour l'axe." – paseena

0

Toutes les séries partagent le même droit de l'axe X? Vous pouvez donc ajouter un axe X générique (la catégorie, comme suggéré, est préférable si vous travaillez avec des valeurs indépendantes) et définir AxisLabelStyle pour afficher ou non le style de contenu du modèle de contenu. J'utilise cette solution et l'exécution ajoutée en série utilisera l'axe X existant que vous ajoutez.

HTH

Questions connexes