是否可以显示仅包含一个点的LineSeries X / Y图形? 对于两个或多个点,它的效果很好,但是即使将PointGeometry设置为某种形状,也不会显示一个点。 至少在此变体中,我希望单点系列看到一个点。有什么方法可以启用它吗?
编辑:非常抱歉,响应速度很慢,我不在电脑前。 萨克的回答使我感动,但我仍然没有解决方案。看我的代码-Sach示例的修改。 如果我对轴使用自己的数据类型和格式化程序,则只有在构造函数中指定了一点时,它才可以使用一个点。如果我创建一个空系列,当我添加至少两个点时,该图会显示吗? (请点击处理程序鼠标向下)
public partial class MainWindow : Window
{
LineSeries lineSeries;
public SeriesCollection SeriesCollection { get; set; }
public Func<double, string> XFormatter { get; set; }
public Func<double, string> YFormatter { get; set; }
public MainWindow()
{
InitializeComponent();
var dayConfig = Mappers.Xy<DateModel>()
.X(dayModel => (double)dayModel.DateTime.Ticks / TimeSpan.FromHours(1).Ticks)
.Y(dayModel => dayModel.Value);
lineSeries = new LineSeries()
{
//Values = new ChartValues<DateModel>{ new DateModel(DateTime.Now, 3) }, //this works
Values = new ChartValues<DateModel>(),
PointGeometry = DefaultGeometries.Circle
};
SeriesCollection = new SeriesCollection(dayConfig);
SeriesCollection.Add(lineSeries);
XFormatter = value => new System.DateTime((long)(value * TimeSpan.FromHours(1).Ticks)).ToString("HH:mm");
YFormatter = value => value.ToString("0.0000");
DataContext = this;
}
public class DateModel
{
public DateModel(DateTime timestamp, double value)
{
DateTime = timestamp;
Value = value;
}
public System.DateTime DateTime { get; set; }
public double Value { get; set; }
}
private void OnMouseDown(object sender, MouseButtonEventArgs e)
{
lineSeries.Values.Add(new DateModel(DateTime.Now, 3));
}
}
答案 0 :(得分:1)
默认情况下有效。这是一个简单的LineSeries
,只有一点:
public partial class MainWindow : Window
{
public SeriesCollection SeriesCollection { get; set; }
public MainWindow()
{
InitializeComponent();
SeriesCollection = new SeriesCollection
{
new LineSeries
{
Values = new ChartValues<double> { 3 }
}
};
DataContext = this;
}
}
和XAML:
<Window x:Class="SOLineCharts.MainWindow"
....
xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf"
mc:Ignorable="d"
WindowStartupLocation="CenterScreen"
Title="MainWindow" Height="450" Width="800">
<Grid>
<lvc:CartesianChart Series="{Binding SeriesCollection}" />
</Grid>
</Window>
结果: