刻度线为X轴

问题描述:

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

刻度线为X轴

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

     } 
    } 
} 

我已附加上述我的代码。 我无法删除X轴刻度线。有人可以请指教?

+0

我不能复制图像,以下是图表的URL:http://www.quantcode.com/uploads/img4d49673d432fb.png – paseena 2011-02-03 21:18:56

+0

将有上图表属性 - 我不没有将它安装在此机器上,因此我无法检查,但Intellisense应该会显示您可以设置的所有属性。 – ChrisF 2011-02-03 21:21:29

您可以隐藏整个X轴是这样的:

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

它添加到您的charting:LineSeries元素或代码:

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

所有系列都共享同一个X轴的对不对?所以你可以添加一个通用的X轴(如果你使用字符串独立值处理,建议的类别更好),并设置AxisLabelStyle以显示内容模板的内容样式。我使用这个解决方案,系列添加的运行时将使用您添加的现有X轴。

HTH