刻度线为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>
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轴刻度线。有人可以请指教?
答
您可以隐藏整个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
我不能复制图像,以下是图表的URL:http://www.quantcode.com/uploads/img4d49673d432fb.png – paseena 2011-02-03 21:18:56
将有上图表属性 - 我不没有将它安装在此机器上,因此我无法检查,但Intellisense应该会显示您可以设置的所有属性。 – ChrisF 2011-02-03 21:21:29