mirror of
https://gitee.com/akwkevin/aistudio.-wpf.-diagram
synced 2026-04-04 08:06:36 +08:00
项目结构调整
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
using LiveCharts;
|
||||
using LiveCharts.Defaults;
|
||||
using LiveCharts.Uwp;
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using Windows.UI.Xaml;
|
||||
using Windows.UI.Xaml.Controls;
|
||||
using Windows.UI.Xaml.Media;
|
||||
|
||||
// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238
|
||||
|
||||
namespace UWP.CartesianChart.Financial
|
||||
{
|
||||
/// <summary>
|
||||
/// An empty page that can be used on its own or navigated to within a Frame.
|
||||
/// </summary>
|
||||
public sealed partial class OhclExample : Page, INotifyPropertyChanged
|
||||
{
|
||||
private string[] _labels;
|
||||
|
||||
public OhclExample()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
SeriesCollection = new SeriesCollection
|
||||
{
|
||||
new OhlcSeries()
|
||||
{
|
||||
Values = new ChartValues<OhlcPoint>
|
||||
{
|
||||
new OhlcPoint(32, 35, 30, 32),
|
||||
new OhlcPoint(33, 38, 31, 37),
|
||||
new OhlcPoint(35, 42, 30, 40),
|
||||
new OhlcPoint(37, 40, 35, 38),
|
||||
new OhlcPoint(35, 38, 32, 33)
|
||||
}
|
||||
},
|
||||
new LineSeries
|
||||
{
|
||||
Values = new ChartValues<double> {30, 32, 35, 30, 28},
|
||||
Fill = new SolidColorBrush(Windows.UI.Colors.Transparent)
|
||||
}
|
||||
};
|
||||
|
||||
//based on https://github.com/beto-rodriguez/Live-Charts/issues/166
|
||||
//The Ohcl point X property is zero based indexed.
|
||||
//this means the first point is 0, second 1, third 2.... and so on
|
||||
//then you can use the Axis.Labels properties to map the chart X with a label in the array.
|
||||
//for more info see (mapped labels section)
|
||||
//http://lvcharts.net/#/examples/v1/labels-wpf?path=WPF-Components-Labels
|
||||
|
||||
Labels = new[]
|
||||
{
|
||||
DateTime.Now.ToString("dd MMM"),
|
||||
DateTime.Now.AddDays(1).ToString("dd MMM"),
|
||||
DateTime.Now.AddDays(2).ToString("dd MMM"),
|
||||
DateTime.Now.AddDays(3).ToString("dd MMM"),
|
||||
DateTime.Now.AddDays(4).ToString("dd MMM"),
|
||||
};
|
||||
|
||||
DataContext = this;
|
||||
}
|
||||
|
||||
public SeriesCollection SeriesCollection { get; set; }
|
||||
|
||||
public string[] Labels
|
||||
{
|
||||
get { return _labels; }
|
||||
set
|
||||
{
|
||||
_labels = value;
|
||||
OnPropertyChanged("Labels");
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateAllOnClick(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var r = new Random();
|
||||
|
||||
foreach (var point in SeriesCollection[0].Values.Cast<OhlcPoint>())
|
||||
{
|
||||
point.Open = r.Next((int)point.Low, (int)point.High);
|
||||
point.Close = r.Next((int)point.Low, (int)point.High);
|
||||
}
|
||||
}
|
||||
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
public void OnPropertyChanged(string propertyName = null)
|
||||
{
|
||||
if (PropertyChanged != null) PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user