我尽可能地遵循实时图表 TimeDate 基本示例,但似乎无法正确显示 X 轴。
https://lvcharts.net/App/examples/v1/wpf/Date%20Time
我的主窗口代码
public partial class MainWindow : Window
{
public Func<double, string> Formatter { get; set; }
public MainWindow()
{
InitializeComponent();
var dayConfig = Mappers.Xy<DateModel>()
.X(dateModel => dateModel.DateTime.Ticks / TimeSpan.FromDays(1).Ticks)
.Y(dateModel => dateModel.Value);
SeriesCollection Series = new SeriesCollection(dayConfig)
{
new LineSeries
{
Title = "Google Rank",
Values = new ChartValues<DateModel>
{
new Wpf.CartesianChart.Using_DateTime.DateModel
{
DateTime = System.DateTime.UtcNow,
Value = 5
},
new Wpf.CartesianChart.Using_DateTime.DateModel
{
DateTime = System.DateTime.UtcNow.AddDays(1),
Value = 9
},
new Wpf.CartesianChart.Using_DateTime.DateModel
{
DateTime = System.DateTime.UtcNow.AddDays(2),
Value = 4
}
},
Fill = Brushes.Transparent,
},
};
Formatter = value => new System.DateTime((long)(value * TimeSpan.FromDays(1).Ticks)).ToString("t");
RankGraph.Series = Series;
}
}
我的主窗口上的 XAML
<Grid>
<lvc:CartesianChart x:Name="RankGraph" Series="{Binding Series}">
<lvc:CartesianChart.AxisX>
<lvc:Axis LabelFormatter="{Binding Formatter}"></lvc:Axis>
</lvc:CartesianChart.AxisX>
</lvc:CartesianChart>
</Grid>
日期模型对象
namespace Wpf.CartesianChart.Using_DateTime
{
public class DateModel
{
public DateTime DateTime { get; set; }
public double Value { get; set; }
}
}
这会产生以下日期混乱...