我也尝试过代码;我发现的所有例子都没有改变任何东西。
<h1>
这是我调用窗口的代码
<Grid>
<charting:Chart Name="lineChart"
Title="Stock"
VerticalAlignment="Top"
Margin="0,10,10,0"
Height="550">
<charting:LineSeries Name="Price"
Title="Price"
DependentValuePath="Value"
IndependentValuePath="Key"
ItemsSource="{Binding [0]}"
IsSelectionEnabled="True"/>
<charting:LineSeries Name="SMA50"
Title="50 SMA"
DependentValuePath="Value"
IndependentValuePath="Key"
ItemsSource="{Binding [1]}"
IsSelectionEnabled="True"/>
<charting:LineSeries Name="SMA200"
Title="200 SMA"
DependentValuePath="Value"
IndependentValuePath="Key"
ItemsSource="{Binding [2]}"
IsSelectionEnabled="True"/>
</charting:Chart>
</Grid>
任何帮助都会很棒。在我看来,Windows格式的图表版本比WPF版本使用起来要简单得多。
答案 0 :(得分:1)
使用DataPointStyle属性指定它:
<charting:LineSeries Name="Price"
Title="Price"
DependentValuePath="Value"
IndependentValuePath="Key"
ItemsSource="{Binding [0]}"
IsSelectionEnabled="True"
DataPointStyle="{StaticResource myDataPointStyle}" />
在这种情况下,我假设是静态资源:
<Style x:Key="myDataPointStyle" TargetType="{x:Type charting:LineDataPoint}">
<Setter Property="Background" Value="Blue"/>
</Style>
如果您需要动态执行此操作并且不想使用数据绑定,那么您当然也可以以编程方式执行此操作:
var style = new Style();
style.TargetType = typeof(LineDataPoint);
style.Setters.Add(new Setter(BackgroundProperty, Brushes.Blue));
this.Price.DataPointStyle = style;
答案 1 :(得分:0)
我没有图表经验,但我想帮忙。
有些事情看起来很奇怪。
您绑定到网格DataContext {Binding [0]}中的元素但从未设置它。
您正在创建一个Graph类并尝试显示它,但它没有以任何方式连接到视图。
这应该在构造函数中起作用: (为窗口设置DataContext,因为您的视图绑定到该窗口)
public MainWindow()
{
List<KeyValuePair<DateTime, int>> listPrice = new List<KeyValuePair<DateTime, int>>();
List<KeyValuePair<DateTime, int>> listSMA50 = new List<KeyValuePair<DateTime, int>>();
List<KeyValuePair<DateTime, int>> listSMA200 = new List<KeyValuePair<DateTime, int>>();
DateTime d = new DateTime(2000, 1, 1);
for (int i = 1; i < 10; i++)
{
listPrice.Add(new KeyValuePair<DateTime, int>(d, i));
listSMA50.Add(new KeyValuePair<DateTime, int>(d, i * 2));
listSMA200.Add(new KeyValuePair<DateTime, int>(d, i * 3));
d = d.AddDays(1.0);
}
var dataSourceList = new List<List<KeyValuePair<DateTime, int>>>();
dataSourceList.Add(listPrice);
dataSourceList.Add(listSMA50);
dataSourceList.Add(listSMA200);
this.DataContext = dataSourceList;
InitializeComponent();
}
这会改变笔画宽度,但由于某种原因,颜色不会改变。
private void bGraph_Click(object sender, RoutedEventArgs e)
{
var style = new Style(typeof(Polyline));
style.Setters.Add(new Setter(Polyline.StrokeProperty, Brushes.Red));
style.Setters.Add(new Setter(Polyline.StrokeThicknessProperty, 5.0));
((LineSeries) lineChart.Series[0]).PolylineStyle = style;
((LineSeries) lineChart.Series[1]).PolylineStyle = style;
((LineSeries) lineChart.Series[2]).PolylineStyle = style;
}