Files
aistudio-wpf-diagram/Others/Live-Charts-master/Examples/Wpf/CartesianChart/MixingSeries/MixingSeries.xaml.cs
2023-04-16 20:11:40 +08:00

102 lines
2.9 KiB
C#

using System;
using System.Diagnostics;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Navigation;
using LiveCharts;
using LiveCharts.Defaults;
using LiveCharts.Wpf;
namespace Wpf.CartesianChart.MixingSeries
{
/// <summary>
/// Interaction logic for MixingSeries.xaml
/// </summary>
public partial class MixingTypes : UserControl
{
public MixingTypes()
{
InitializeComponent();
LineSeries = new LineSeries
{
Values = new ChartValues<ObservableValue>
{
new ObservableValue(5),
new ObservableValue(7),
new ObservableValue(2),
new ObservableValue(3)
},
PointForeground = new SolidColorBrush(Color.FromRgb(50,50,50)),
AreaLimit = 0
};
ScatterSeries = new ScatterSeries
{
Values = new ChartValues<ScatterPoint>
{
new ScatterPoint(0, 2, 10),
new ScatterPoint(1, 1, 2),
new ScatterPoint(2, 3, 7),
new ScatterPoint(3, 4, 9)
}
};
ColumnSeries = new ColumnSeries
{
Values = new ChartValues<ObservableValue>
{
new ObservableValue(5),
new ObservableValue(7),
new ObservableValue(2),
new ObservableValue(3)
}
};
SeriesCollection = new SeriesCollection
{
LineSeries,
ScatterSeries,
ColumnSeries
};
DataContext = this;
}
public ScatterSeries ScatterSeries { get; set; }
public LineSeries LineSeries { get; set; }
public ColumnSeries ColumnSeries { get; set; }
public SeriesCollection SeriesCollection { get; set; }
private void OnLinkRequest(object sender, RequestNavigateEventArgs e)
{
Process.Start(new ProcessStartInfo(e.Uri.AbsoluteUri));
e.Handled = true;
}
private void UpdateAllOnClick(object sender, RoutedEventArgs e)
{
var r = new Random();
foreach (var value in LineSeries.Values.Cast<ObservableValue>())
{
value.Value = r.Next(-20, 20);
}
foreach (var value in ColumnSeries.Values.Cast<ObservableValue>())
{
value.Value = r.Next(-20, 20);
}
var i = 0;
foreach (var value in ScatterSeries.Values.Cast<ScatterPoint>())
{
value.X = i;
value.Y = r.Next(-20, 20);
value.Weight = r.Next(-20, 20);
i++;
}
}
}
}