2011-11-14 5 views
2

Je suis confus par le balisage XAML en général et en particulier pour le toolkit graphique et j'apprécierais grandement de l'aider à le trier. Je l'ai créé avec succès un tableau avec l'axe X montrant le calendrier et l'axe Y montrant une valeur à l'aide XAML ci-dessous:Ajustement de la fréquence des étiquettes d'axe X dans la trousse à outils de charriage WPF

<chartingToolkit:Chart HorizontalAlignment="Left" Margin="44,12,0,0" Name="chart1" VerticalAlignment="Top" Height="521" Width="826"> 
     <chartingToolkit:Chart.Axes> 
      <chartingToolkit:DateTimeAxis IntervalType ="Hours" Interval="1"> 
       <chartingToolkit:DateTimeAxis.AxisLabelStyle> 
        <Style TargetType="chartingToolkit:DateTimeAxisLabel"> 
         <Setter Property="Template"> 
          <Setter.Value>         
           <Setter Property="StringFormat" Value="{}{0:H}" /> 
          </Setter.Value> 
         </Setter> 
        </Style> 
       </chartingToolkit:DateTimeAxis.AxisLabelStyle>      
      </chartingToolkit:DateTimeAxis> 
      </chartingToolkit:Chart.Axes> 
     <chartingToolkit:LineSeries x:Name="LineSeries1" DependentValuePath="Value" IndependentValuePath="Key" ItemsSource="{Binding}"> 
      <chartingToolkit:LineSeries.DataPointStyle> 
       <Style TargetType="chartingToolkit:LineDataPoint"> 
        <Setter Property="Visibility" Value="Collapsed"/> 
        <Setter Property="Background" Value="violet"/> 
        <Setter Property="Opacity" Value="0" /> 
       </Style> 
      </chartingToolkit:LineSeries.DataPointStyle> 
     </chartingToolkit:LineSeries> 
    </chartingToolkit:Chart> 

Dans le code-behind je remplir une dictiory déclarée Dictionary<TimeSpan, float> Dict = new Dictionary<TimeSpan, float>(); avec des valeurs toutes les minutes pendant 2 heures (60 valeurs) et définissez le contexte de données pour lineseries1 au dictionnaire en tant que tel: LineSeries1.DataContext = Dict.

Le graphique dessine magnifiquement, Cependant, comme il ressort de ma tentative futile dans le XAML. J'ai besoin de l'étiquette X et des graduations pour apparaître une fois par heure et non une fois par minute et j'en ai besoin pour afficher seulement les heures et non les minutes et les secondes. Mon code XAML ci-dessus pour ajuster l'intervalle et le formatage de l'étiquette ne fonctionne pas. J'apprécierais n'importe quel pointeur pour me diriger dans la bonne direction.

Merci, KALORY

Répondre

1

Il devrait fonctionner comme vous prévu si vous ajoutez à votre orientation DateTimeAxis, comme ceci:

<chartingToolkit:DateTimeAxis Orientation="X" IntervalType ="Hours" Interval="1">

Je ne sais pas pourquoi il fait la différence, mais semble-t-il ...

Questions connexes