diff --git a/Source/Directory.Build.props b/Source/Directory.Build.props index 3f15db6..1f55fde 100644 --- a/Source/Directory.Build.props +++ b/Source/Directory.Build.props @@ -1,6 +1,6 @@ - 11.0.0 - 2.1.2 + 12.0.2 + 2.2.0 \ No newline at end of file diff --git a/Source/Examples/Avalonia/AvaloniaExamples/App.axaml.cs b/Source/Examples/Avalonia/AvaloniaExamples/App.axaml.cs index 3d40e69..a51127a 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/App.axaml.cs +++ b/Source/Examples/Avalonia/AvaloniaExamples/App.axaml.cs @@ -12,37 +12,38 @@ public class App : Application public override void Initialize() { AvaloniaXamlLoader.Load(this); - base.Initialize(); +#if DEBUG + this.AttachDeveloperTools(); +#endif } public override void OnFrameworkInitializationCompleted() { - if (!(ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)) + if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) { - throw new PlatformNotSupportedException(); + desktop.MainWindow = new MainWindow(); } - desktop.MainWindow = new MainWindow(); - base.OnFrameworkInitializationCompleted(); } + } - static void Main(string[] args) + public class Program + { + public static AppBuilder BuildAvaloniaApp() { OxyPlotModule.EnsureLoaded(); - AppBuilder.Configure() - .UsePlatformDetect() + var builder = AppBuilder.Configure() + .UsePlatformDetect(); #if DEBUG - .LogToTrace() + builder.LogToTrace(); #endif - .StartWithClassicDesktopLifetime(args); + return builder; } - public static void AttachDevTools(Window window) + public static void Main(string[] args) { -#if DEBUG - DevToolsExtensions.AttachDevTools(window); -#endif - } + BuildAvaloniaApp().StartWithClassicDesktopLifetime(args); + } } } diff --git a/Source/Examples/Avalonia/AvaloniaExamples/AvaloniaExamples.csproj b/Source/Examples/Avalonia/AvaloniaExamples/AvaloniaExamples.csproj index 3540b23..2342f45 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/AvaloniaExamples.csproj +++ b/Source/Examples/Avalonia/AvaloniaExamples/AvaloniaExamples.csproj @@ -1,16 +1,17 @@  - net8.0 + net10.0 WinExe + false - + - + \ No newline at end of file diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/AlignedAxesDemo/MainWindow.xaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/AlignedAxesDemo/MainWindow.xaml index 7565d01..c39cd56 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/AlignedAxesDemo/MainWindow.xaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/AlignedAxesDemo/MainWindow.xaml @@ -1,9 +1,11 @@  + Title="AlignedAxesDemo" Height="480" Width="640" + x:DataType="local:Context"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/AlignedAxesDemo/MainWindow.xaml.cs b/Source/Examples/Avalonia/AvaloniaExamples/Examples/AlignedAxesDemo/MainWindow.xaml.cs index 6b03716..057dbea 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/AlignedAxesDemo/MainWindow.xaml.cs +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/AlignedAxesDemo/MainWindow.xaml.cs @@ -30,7 +30,7 @@ public partial class MainWindow : Window public MainWindow() { this.InitializeComponent(); - var models = new { Model0 = CreatePlotModel(0, 10), Model1 = CreatePlotModel(0, 1e8) }; + var models = new Context(CreatePlotModel(0, 10), CreatePlotModel(0, 1e8)); // TODO: align the vertical axis size without setting PlotMargins models.Model0.PlotMargins = models.Model1.PlotMargins = new OxyThickness(70, 40, 20, 20); @@ -53,4 +53,6 @@ private static PlotModel CreatePlotModel(double min, double max) return model; } } + + internal record Context(PlotModel Model0, PlotModel Model1); } \ No newline at end of file diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnimationsDemo/Controls/AnimationSettingsControl.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnimationsDemo/Controls/AnimationSettingsControl.axaml index d42ed0f..f0443a3 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnimationsDemo/Controls/AnimationSettingsControl.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnimationsDemo/Controls/AnimationSettingsControl.axaml @@ -1,7 +1,9 @@  + x:Class="AvaloniaExamples.Examples.AnimationsDemo.Controls.AnimationSettingsControl" + x:DataType="animationsdemo:AnimationViewModelBase"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnimationsDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnimationsDemo/MainWindow.axaml index 3439402..a265f90 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnimationsDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnimationsDemo/MainWindow.axaml @@ -2,6 +2,7 @@ xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:AnimationsDemoViews="clr-namespace:AvaloniaExamples.Examples.AnimationsDemo.Views;assembly=AvaloniaExamples" + xmlns:local="using:AvaloniaExamples.Examples.AnimationsDemo" xmlns:AnimationsDemoControls="clr-namespace:AvaloniaExamples.Examples.AnimationsDemo.Controls;assembly=AvaloniaExamples" x:Class="AvaloniaExamples.Examples.AnimationsDemo.MainWindow" Title="AnimationsDemo" Height="480" Width="740"> @@ -25,7 +26,7 @@ - + diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnimationsDemo/MainWindow.axaml.cs b/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnimationsDemo/MainWindow.axaml.cs index 5add1fc..c0b1fd7 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnimationsDemo/MainWindow.axaml.cs +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnimationsDemo/MainWindow.axaml.cs @@ -22,7 +22,6 @@ public partial class MainWindow : Avalonia.Controls.Window public MainWindow() { this.InitializeComponent(); - App.AttachDevTools(this); } private void InitializeComponent() diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnimationsDemo/Views/AreaSeriesView.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnimationsDemo/Views/AreaSeriesView.axaml index 799b117..7abc060 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnimationsDemo/Views/AreaSeriesView.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnimationsDemo/Views/AreaSeriesView.axaml @@ -1,11 +1,12 @@  + x:DataType="animationsdemo:AreaSeriesViewModel"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnimationsDemo/Views/LineSeriesView.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnimationsDemo/Views/LineSeriesView.axaml index 31cfcee..fd070cc 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnimationsDemo/Views/LineSeriesView.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnimationsDemo/Views/LineSeriesView.axaml @@ -1,11 +1,12 @@  + x:DataType="animationsdemo:LineSeriesViewModel"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnimationsDemo/Views/LinearBarView.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnimationsDemo/Views/LinearBarView.axaml index de028c0..15b9acd 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnimationsDemo/Views/LinearBarView.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnimationsDemo/Views/LinearBarView.axaml @@ -1,11 +1,12 @@  + x:DataType="animationsdemo:LinearBarViewModel"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnnotationDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnnotationDemo/MainWindow.axaml index acf27ba..861f79c 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnnotationDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnnotationDemo/MainWindow.axaml @@ -3,8 +3,10 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:oxy="clr-namespace:OxyPlot.Avalonia;assembly=OxyPlot.Avalonia" xmlns:OxyPlot="clr-namespace:OxyPlot;assembly=OxyPlot" + xmlns:local="using:AvaloniaExamples.Examples.AnnotationDemo" x:Class="AvaloniaExamples.Examples.AnnotationDemo.MainWindow" - Title="AnnotationDemo" Height="480" Width="640"> + Title="AnnotationDemo" Height="480" Width="640" + x:DataType="local:Context"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnnotationDemo/MainWindow.axaml.cs b/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnnotationDemo/MainWindow.axaml.cs index f8366aa..0c82de7 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnnotationDemo/MainWindow.axaml.cs +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/AnnotationDemo/MainWindow.axaml.cs @@ -29,7 +29,7 @@ public MainWindow() { new DataPoint(10, 10), new DataPoint(80, 30), new DataPoint(60, 70) }; - this.DataContext = new { Points }; + this.DataContext = new Context(Points); } private void InitializeComponent() @@ -42,4 +42,6 @@ private void InitializeComponent() /// public IList Points { get; private set; } } + + internal record Context(IList Points); } \ No newline at end of file diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/AreaDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/AreaDemo/MainWindow.axaml index 43f6ed5..31db4fe 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/AreaDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/AreaDemo/MainWindow.axaml @@ -1,9 +1,11 @@  + Title="AreaDemo" Height="480" Width="640" + x:DataType="local:MainViewModel"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/AxesDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/AxesDemo/MainWindow.axaml index 3b15d78..ebfb5f0 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/AxesDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/AxesDemo/MainWindow.axaml @@ -1,9 +1,11 @@  + Title="AxesDemo" Height="480" Width="640" + x:DataType="local:MainViewModel"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/BarSeriesDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/BarSeriesDemo/MainWindow.axaml index a0f1d60..766c7f4 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/BarSeriesDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/BarSeriesDemo/MainWindow.axaml @@ -1,9 +1,11 @@  + Title="BarSeriesDemo" Height="480" Width="640" + x:DataType="local:Context"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/BarSeriesDemo/MainWindow.axaml.cs b/Source/Examples/Avalonia/AvaloniaExamples/Examples/BarSeriesDemo/MainWindow.axaml.cs index e7b290a..5723672 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/BarSeriesDemo/MainWindow.axaml.cs +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/BarSeriesDemo/MainWindow.axaml.cs @@ -47,11 +47,9 @@ public MainWindow() tmp.Series.Add(new BarSeries { Title = "2011", ItemsSource = items, ValueField = "Value3" }); tmp.Series.Add(new BarSeries { Title = "2012", ItemsSource = items, ValueField = "Value4" }); - this.DataContext = new { Model1 = tmp, Items = items }; + this.DataContext = new Context(tmp, items); this.InitializeComponent(); - - App.AttachDevTools(this); } private void InitializeComponent() @@ -68,4 +66,6 @@ public class Item : BarItem public double Value3 { get; set; } public double Value4 { get; set; } } + + internal record Context(PlotModel Model1, Collection Items); } \ No newline at end of file diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/BindingDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/BindingDemo/MainWindow.axaml index d8ee216..56c588e 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/BindingDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/BindingDemo/MainWindow.axaml @@ -1,10 +1,12 @@  + Height="480" + x:DataType="local:MainViewModel"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/BindingObservableCollectionDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/BindingObservableCollectionDemo/MainWindow.axaml index d660388..90412ad 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/BindingObservableCollectionDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/BindingObservableCollectionDemo/MainWindow.axaml @@ -1,10 +1,12 @@  + Height="480" + x:DataType="local:MainViewModel"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/BindingObservableCollectionDemo/MainWindow.axaml.cs b/Source/Examples/Avalonia/AvaloniaExamples/Examples/BindingObservableCollectionDemo/MainWindow.axaml.cs index e548301..e072983 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/BindingObservableCollectionDemo/MainWindow.axaml.cs +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/BindingObservableCollectionDemo/MainWindow.axaml.cs @@ -22,7 +22,7 @@ public partial class MainWindow : Avalonia.Controls.Window public MainWindow() { this.InitializeComponent(); - var vm = new BindingObservableCollectionDemo.MainViewModel(); + var vm = new MainViewModel(); this.DataContext = vm; } diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/BoxPlotSeriesDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/BoxPlotSeriesDemo/MainWindow.axaml index 7cd0193..7e61adf 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/BoxPlotSeriesDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/BoxPlotSeriesDemo/MainWindow.axaml @@ -1,11 +1,13 @@  + Height="480" + x:DataType="local:Context"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/BoxPlotSeriesDemo/MainWindow.axaml.cs b/Source/Examples/Avalonia/AvaloniaExamples/Examples/BoxPlotSeriesDemo/MainWindow.axaml.cs index 17a0ea6..e7c8363 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/BoxPlotSeriesDemo/MainWindow.axaml.cs +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/BoxPlotSeriesDemo/MainWindow.axaml.cs @@ -54,7 +54,7 @@ public MainWindow() // Add the series, note that the BarSeries are using the same ItemsSource as the CategoryAxis. tmp.Series.Add(new BoxPlotSeries { Title = "Values", ItemsSource = items, Fill = Colors.LightBlue.ToOxyColor() }); - this.DataContext = new { Model1 = tmp, Items = items }; + this.DataContext = new Context(tmp, items); } private void InitializeComponent() @@ -62,4 +62,6 @@ private void InitializeComponent() Avalonia.Markup.Xaml.AvaloniaXamlLoader.Load(this); } } + + internal record Context(PlotModel Model1, Collection Items); } \ No newline at end of file diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/ColorBindingDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/ColorBindingDemo/MainWindow.axaml index 9fb0dd6..6658ea9 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/ColorBindingDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/ColorBindingDemo/MainWindow.axaml @@ -4,7 +4,8 @@ xmlns:oxy="http://oxyplot.org/avalonia" xmlns:ColorBindingDemo="clr-namespace:AvaloniaExamples.Examples.ColorBindingDemo;assembly=AvaloniaExamples" x:Class="AvaloniaExamples.Examples.ColorBindingDemo.MainWindow" - Title="ColorBindingDemo" Height="480" Width="640"> + Title="ColorBindingDemo" Height="480" Width="640" + x:DataType="ColorBindingDemo:MainViewModel"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/ContextMenuDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/ContextMenuDemo/MainWindow.axaml index 7c48f3e..068c19d 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/ContextMenuDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/ContextMenuDemo/MainWindow.axaml @@ -1,9 +1,11 @@  + Title="ContextMenuDemo" Height="480" Width="640" + x:DataType="local:MainWindow"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/ContourDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/ContourDemo/MainWindow.axaml index aa4276b..fb07e80 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/ContourDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/ContourDemo/MainWindow.axaml @@ -1,8 +1,10 @@  + Title="ContourDemo" Height="480" Width="640" + x:DataType="local:MainViewModel"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/ControllerDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/ControllerDemo/MainWindow.axaml index fe57ee6..4052ffb 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/ControllerDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/ControllerDemo/MainWindow.axaml @@ -4,7 +4,8 @@ xmlns:oxy="clr-namespace:OxyPlot.Avalonia;assembly=OxyPlot.Avalonia" xmlns:local="clr-namespace:AvaloniaExamples.Examples.ControllerDemo;assembly=AvaloniaExamples" x:Class="AvaloniaExamples.Examples.ControllerDemo.MainWindow" - Title="OxyPlot Controller Demo" Height="480" Width="640"> + Title="OxyPlot Controller Demo" Height="480" Width="640" + x:DataType="local:MainViewModel"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/ControllerDemo/MainWindow.axaml.cs b/Source/Examples/Avalonia/AvaloniaExamples/Examples/ControllerDemo/MainWindow.axaml.cs index 1cff61f..66b8baf 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/ControllerDemo/MainWindow.axaml.cs +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/ControllerDemo/MainWindow.axaml.cs @@ -29,7 +29,6 @@ public MainWindow() private void InitializeComponent() { Avalonia.Markup.Xaml.AvaloniaXamlLoader.Load(this); - } } } \ No newline at end of file diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/CoupledAxesDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/CoupledAxesDemo/MainWindow.axaml index bf7549a..a33bdac 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/CoupledAxesDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/CoupledAxesDemo/MainWindow.axaml @@ -1,9 +1,11 @@  + Title="CoupledAxesDemo" Height="480" Width="640" + x:DataType="local:MainWindow"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/CustomTrackerDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/CustomTrackerDemo/MainWindow.axaml index d384b1e..197a511 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/CustomTrackerDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/CustomTrackerDemo/MainWindow.axaml @@ -3,13 +3,16 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:oxy="clr-namespace:OxyPlot.Avalonia;assembly=OxyPlot.Avalonia" xmlns:local="clr-namespace:AvaloniaExamples.Examples.CustomTrackerDemo;assembly=AvaloniaExamples" + xmlns:models="using:OxyPlot" + xmlns:series="using:OxyPlot.Series" x:Class="AvaloniaExamples.Examples.CustomTrackerDemo.MainWindow" - Title="CustomTrackerDemo" Height="480" Width="640"> + Title="CustomTrackerDemo" Height="480" Width="640" + x:DataType="local:Context"> - + @@ -28,8 +31,8 @@ - - + + @@ -44,7 +47,7 @@ - + @@ -57,7 +60,7 @@ - + @@ -70,7 +73,7 @@ - + @@ -83,7 +86,7 @@ - + @@ -94,7 +97,7 @@ - + @@ -112,7 +115,7 @@ - + @@ -135,7 +138,7 @@ - + @@ -144,7 +147,7 @@ - + @@ -157,7 +160,7 @@ - + diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/CustomTrackerDemo/MainWindow.axaml.cs b/Source/Examples/Avalonia/AvaloniaExamples/Examples/CustomTrackerDemo/MainWindow.axaml.cs index 8796fd2..f65185e 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/CustomTrackerDemo/MainWindow.axaml.cs +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/CustomTrackerDemo/MainWindow.axaml.cs @@ -35,18 +35,18 @@ private void InitializeComponent() { AvaloniaXamlLoader.Load(this); } + } - private class Context + public class Context + { + public PlotModel Model { - public PlotModel Model + get { - get - { - var model = new PlotModel(); - model.Series.Add(new LineSeries { Title = "Series 1", TrackerKey = "Tracker1", ItemsSource = new List { new DataPoint(0, 0), new DataPoint(10, 20), new DataPoint(20, 18) } }); - model.Series.Add(new LineSeries { Title = "Series 2", TrackerKey = "Tracker2", ItemsSource = new List { new DataPoint(0, 10), new DataPoint(10, 10), new DataPoint(20, 16) } }); - return model; - } + var model = new PlotModel(); + model.Series.Add(new LineSeries { Title = "Series 1", TrackerKey = "Tracker1", ItemsSource = new List { new DataPoint(0, 0), new DataPoint(10, 20), new DataPoint(20, 18) } }); + model.Series.Add(new LineSeries { Title = "Series 2", TrackerKey = "Tracker2", ItemsSource = new List { new DataPoint(0, 10), new DataPoint(10, 10), new DataPoint(20, 16) } }); + return model; } } } diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/DataTemplateDemo/PlotViewDataTemplateWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/DataTemplateDemo/PlotViewDataTemplateWindow.axaml index 9a45939..7095b11 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/DataTemplateDemo/PlotViewDataTemplateWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/DataTemplateDemo/PlotViewDataTemplateWindow.axaml @@ -1,10 +1,12 @@  + Width="640" + x:DataType="local:Context"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/DataTemplateDemo/PlotViewDataTemplateWindow.axaml.cs b/Source/Examples/Avalonia/AvaloniaExamples/Examples/DataTemplateDemo/PlotViewDataTemplateWindow.axaml.cs index 75e9beb..f3423cb 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/DataTemplateDemo/PlotViewDataTemplateWindow.axaml.cs +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/DataTemplateDemo/PlotViewDataTemplateWindow.axaml.cs @@ -31,7 +31,7 @@ public partial class PlotViewDataTemplateWindow : Avalonia.Controls.Window public PlotViewDataTemplateWindow() { this.InitializeComponent(); - this.DataContext = new { Models = CreateModels().ToArray() }; + this.DataContext = new Context(CreateModels().ToArray()); this.DataTemplates.Add(new FuncDataTemplate((model, _) => new OxyPlot.Avalonia.PlotView { [!!OxyPlot.Avalonia.PlotView.ModelProperty] = new Binding(nameof(Model.PlotModel)), @@ -43,7 +43,6 @@ public PlotViewDataTemplateWindow() private void InitializeComponent() { Avalonia.Markup.Xaml.AvaloniaXamlLoader.Load(this); - App.AttachDevTools(this); } private static Random r = new Random(13); @@ -77,4 +76,6 @@ public class Model public PlotModel PlotModel { get; set; } public IPlotController PlotController { get; set; } } + + internal record Context(Model[] Models); } \ No newline at end of file diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/DateTimeDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/DateTimeDemo/MainWindow.axaml index f2b24b0..3a41072 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/DateTimeDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/DateTimeDemo/MainWindow.axaml @@ -1,9 +1,11 @@  + Title="DateTimeDemo" Height="480" Width="640" + x:DataType="local:Context"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/DateTimeDemo/MainWindow.axaml.cs b/Source/Examples/Avalonia/AvaloniaExamples/Examples/DateTimeDemo/MainWindow.axaml.cs index 22aecf3..5c7d4ed 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/DateTimeDemo/MainWindow.axaml.cs +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/DateTimeDemo/MainWindow.axaml.cs @@ -45,7 +45,7 @@ public MainWindow() // SunData = CreateSunData(year, 21.30694, -157.85833, TimeZoneInfo.FindSystemTimeZoneById("Hawaiian Standard Time")); - this.DataContext = new { ExampleModel, ExampleModel2, Data, Data2, SunData }; + this.DataContext = new Context(ExampleModel, ExampleModel2, Data, Data2, SunData); } private void InitializeComponent() @@ -161,4 +161,6 @@ public class SunItem public TimeSpan Sunrise { get; set; } public TimeSpan Sunset { get; set; } } + + internal record Context(PlotModel ExampleModel, PlotModel ExampleModel2, Collection Data, Collection Data2, Collection SunData); } \ No newline at end of file diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/HeatMapDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/HeatMapDemo/MainWindow.axaml index 66c0d2c..aaff7c6 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/HeatMapDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/HeatMapDemo/MainWindow.axaml @@ -1,9 +1,11 @@  + Title="HeatMapDemo" Height="480" Width="640" + x:DataType="local:Context"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/HeatMapDemo/MainWindow.axaml.cs b/Source/Examples/Avalonia/AvaloniaExamples/Examples/HeatMapDemo/MainWindow.axaml.cs index 0c9d764..39e9c7f 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/HeatMapDemo/MainWindow.axaml.cs +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/HeatMapDemo/MainWindow.axaml.cs @@ -25,7 +25,7 @@ public partial class MainWindow : Avalonia.Controls.Window public MainWindow() { this.InitializeComponent(); - this.DataContext = new { Data = this.GenerateHeatMap() }; + this.DataContext = new Context(this.GenerateHeatMap()); } private void InitializeComponent() @@ -55,4 +55,6 @@ private void InitializeComponent() return result; } } + + internal record Context(double[,] Data); } \ No newline at end of file diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/LegendsDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/LegendsDemo/MainWindow.axaml index 5c22712..0f9499e 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/LegendsDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/LegendsDemo/MainWindow.axaml @@ -1,9 +1,11 @@  + Title="LegendsDemo" Height="720" Width="1280" + x:DataType="local:MainViewModel"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/LinearBarSeriesDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/LinearBarSeriesDemo/MainWindow.axaml index bf7e196..f9cd6fe 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/LinearBarSeriesDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/LinearBarSeriesDemo/MainWindow.axaml @@ -1,9 +1,11 @@  + Title="LinearBarSeriesDemo" Height="480" Width="640" + x:DataType="local:MainViewModel"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/PerformanceDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/PerformanceDemo/MainWindow.axaml index c3936bd..0f4aa48 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/PerformanceDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/PerformanceDemo/MainWindow.axaml @@ -1,9 +1,11 @@  + Title="PerformanceDemo" Height="480" Width="640" + x:DataType="local:Context"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/PerformanceDemo/MainWindow.axaml.cs b/Source/Examples/Avalonia/AvaloniaExamples/Examples/PerformanceDemo/MainWindow.axaml.cs index dce2905..048c0d9 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/PerformanceDemo/MainWindow.axaml.cs +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/PerformanceDemo/MainWindow.axaml.cs @@ -38,7 +38,7 @@ public MainWindow() plotModels.Add(GenerateRandomPlotModel(string.Format("Random plot '{0}'", i + 1))); } - this.DataContext = new { PlotModels = plotModels }; + this.DataContext = new Context(plotModels); } private void InitializeComponent() @@ -65,4 +65,6 @@ private PlotModel GenerateRandomPlotModel(string title, int numberOfPoints = 50) return plotModel; } } + + internal record Context(List PlotModels); } \ No newline at end of file diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/PieDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/PieDemo/MainWindow.axaml index b84ca64..827eb42 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/PieDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/PieDemo/MainWindow.axaml @@ -1,9 +1,11 @@  + Title="PieDemo" Height="480" Width="640" + x:DataType="local:Context"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/PieDemo/MainWindow.axaml.cs b/Source/Examples/Avalonia/AvaloniaExamples/Examples/PieDemo/MainWindow.axaml.cs index f91a980..ee0eba6 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/PieDemo/MainWindow.axaml.cs +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/PieDemo/MainWindow.axaml.cs @@ -53,7 +53,7 @@ public MainWindow() Continents.Add(new ContinentItem { Name = "Oceania", PopulationInMillions = 35, IsExploded = true }); this.PieModel = plotModel; - this.DataContext = new { PieModel, Continents }; + this.DataContext = new Context(PieModel, Continents); } private void InitializeComponent() @@ -74,4 +74,6 @@ public class ContinentItem public bool IsExploded { get; set; } } + + internal record Context(PlotModel PieModel, ObservableCollection Continents); } diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/PolarDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/PolarDemo/MainWindow.axaml index 37d14b5..2bff3b4 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/PolarDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/PolarDemo/MainWindow.axaml @@ -1,9 +1,11 @@  + Title="PolarDemo" Height="480" Width="640" + x:DataType="local:Context"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/PolarDemo/MainWindow.axaml.cs b/Source/Examples/Avalonia/AvaloniaExamples/Examples/PolarDemo/MainWindow.axaml.cs index 7e37a3d..34cccee 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/PolarDemo/MainWindow.axaml.cs +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/PolarDemo/MainWindow.axaml.cs @@ -38,7 +38,7 @@ public MainWindow() this.PI = Math.PI; this.MyModel = this.CreateModel(); this.SpiralPoints = ((FunctionSeries)this.MyModel.Series[0]).Points; - this.DataContext = new { MaxAngle, MajorStep, MinorStep, PI, MyModel, SpiralPoints }; + this.DataContext = new Context(MaxAngle, MajorStep, MinorStep, PI, MyModel, SpiralPoints); } private void InitializeComponent() @@ -106,4 +106,6 @@ private PlotModel CreateModel() } } + + internal record Context(double MaxAngle, double MajorStep, double MinorStep, double PI, PlotModel MyModel, IList SpiralPoints); } \ No newline at end of file diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/RealtimeDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/RealtimeDemo/MainWindow.axaml index 7f5da9e..af553d1 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/RealtimeDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/RealtimeDemo/MainWindow.axaml @@ -1,9 +1,11 @@  + Title="RealtimeDemo" Height="480" Width="640" + x:DataType="local:MainViewModel"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/ScatterDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/ScatterDemo/MainWindow.axaml index a7db7de..3d4b0cd 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/ScatterDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/ScatterDemo/MainWindow.axaml @@ -1,9 +1,11 @@  + Title="ScatterDemo" Height="480" Width="640" + x:DataType="local:Context"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/ScatterDemo/MainWindow.axaml.cs b/Source/Examples/Avalonia/AvaloniaExamples/Examples/ScatterDemo/MainWindow.axaml.cs index ad60bad..f44596a 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/ScatterDemo/MainWindow.axaml.cs +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/ScatterDemo/MainWindow.axaml.cs @@ -41,7 +41,7 @@ public MainWindow() tmp.Series.Add(s1); this.ScatterModel = tmp; - DataContext = new { ScatterModel }; + DataContext = new Context(ScatterModel); } private void InitializeComponent() @@ -51,4 +51,6 @@ private void InitializeComponent() public PlotModel ScatterModel { get; set; } } + + internal record Context(PlotModel ScatterModel); } \ No newline at end of file diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/ScatterErrorSeriesDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/ScatterErrorSeriesDemo/MainWindow.axaml index 862c7f0..e85ff26 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/ScatterErrorSeriesDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/ScatterErrorSeriesDemo/MainWindow.axaml @@ -1,9 +1,11 @@  + Title="BarSeriesDemo" Height="480" Width="640" + x:DataType="local:Context"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/ScatterErrorSeriesDemo/MainWindow.axaml.cs b/Source/Examples/Avalonia/AvaloniaExamples/Examples/ScatterErrorSeriesDemo/MainWindow.axaml.cs index 6930cdc..b87a36f 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/ScatterErrorSeriesDemo/MainWindow.axaml.cs +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/ScatterErrorSeriesDemo/MainWindow.axaml.cs @@ -35,7 +35,7 @@ public MainWindow() this.PointList = this.Points.Select(p => new ScatterErrorPoint(p.V1, p.V2, p.E1, p.E2)).ToList(); this.PointArray = this.PointList.ToArray(); - this.DataContext = new { Points, PointList, PointArray }; + this.DataContext = new Context(Points, PointList, PointArray); } private void InitializeComponent() @@ -103,4 +103,6 @@ public class ExamplePoint public double E2 { get; set; } } } + + internal record Context(List Points, List PointList, ScatterErrorPoint[] PointArray); } \ No newline at end of file diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/ScrollViewerDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/ScrollViewerDemo/MainWindow.axaml index 253086f..cc3cf96 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/ScrollViewerDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/ScrollViewerDemo/MainWindow.axaml @@ -1,9 +1,11 @@  + Title="ScrollViewerDemo" Height="480" Width="640" + x:DataType="local:Context"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/ScrollViewerDemo/MainWindow.axaml.cs b/Source/Examples/Avalonia/AvaloniaExamples/Examples/ScrollViewerDemo/MainWindow.axaml.cs index bd664a0..5e18143 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/ScrollViewerDemo/MainWindow.axaml.cs +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/ScrollViewerDemo/MainWindow.axaml.cs @@ -30,7 +30,7 @@ public MainWindow() plotModel.Axes.Add(new LinearAxis { Position = AxisPosition.Left }); plotModel.Axes.Add(new LinearAxis { Position = AxisPosition.Bottom }); - this.DataContext = new { Plot = plotModel }; + this.DataContext = new Context(plotModel); } private void InitializeComponent() @@ -38,4 +38,6 @@ private void InitializeComponent() Avalonia.Markup.Xaml.AvaloniaXamlLoader.Load(this); } } + + internal record Context(PlotModel Plot); } \ No newline at end of file diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/TaskDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/TaskDemo/MainWindow.axaml index da538c8..1df09a7 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/TaskDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/TaskDemo/MainWindow.axaml @@ -1,9 +1,11 @@  + Title="TaskDemo" Height="480" Width="640" + x:DataType="local:MainViewModel"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/ToolTipDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/ToolTipDemo/MainWindow.axaml index 6bbcf76..819af50 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/ToolTipDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/ToolTipDemo/MainWindow.axaml @@ -1,9 +1,11 @@  + Title="PerformanceDemo" Height="480" Width="640" + x:DataType="local:MainViewModel"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/TwoColorAreaDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/TwoColorAreaDemo/MainWindow.axaml index 062e70d..ed60cab 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/TwoColorAreaDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/TwoColorAreaDemo/MainWindow.axaml @@ -1,9 +1,11 @@  + Title="TwoColorAreaDemo" Height="480" Width="640" + x:DataType="local:MainViewModel"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/UserControlDemo/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/UserControlDemo/MainWindow.axaml index 282b0d3..3be46fb 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/UserControlDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/UserControlDemo/MainWindow.axaml @@ -3,7 +3,8 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:UserControlDemo="clr-namespace:AvaloniaExamples.Examples.UserControlDemo;assembly=AvaloniaExamples" x:Class="AvaloniaExamples.Examples.UserControlDemo.MainWindow" - Title="Plot in UserControl" Height="480" Width="640"> + Title="Plot in UserControl" Height="480" Width="640" + x:DataType="UserControlDemo:Context"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/UserControlDemo/MainWindow.axaml.cs b/Source/Examples/Avalonia/AvaloniaExamples/Examples/UserControlDemo/MainWindow.axaml.cs index 8bca701..9325622 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/UserControlDemo/MainWindow.axaml.cs +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/UserControlDemo/MainWindow.axaml.cs @@ -9,8 +9,6 @@ namespace AvaloniaExamples.Examples.UserControlDemo { - using System.Windows; - using AvaloniaExamples; /// @@ -22,8 +20,7 @@ public partial class MainWindow : Avalonia.Controls.Window public MainWindow() { this.InitializeComponent(); - this.DataContext = new { Model1 = new ViewModel { Title = "Plot1" }, Model2 = new ViewModel { Title = "Plot2" } }; - App.AttachDevTools(this); + this.DataContext = new Context(new ViewModel { Title = "Plot1" }, new ViewModel { Title = "Plot2" }); } private void InitializeComponent() @@ -32,4 +29,6 @@ private void InitializeComponent() } } + + internal record Context(ViewModel Model1, ViewModel Model2); } \ No newline at end of file diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/UserControlDemo/MainWindow2.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/UserControlDemo/MainWindow2.axaml index f4cb8dd..827ecd1 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/UserControlDemo/MainWindow2.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/UserControlDemo/MainWindow2.axaml @@ -3,7 +3,8 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:UserControlDemo="clr-namespace:AvaloniaExamples.Examples.UserControlDemo;assembly=AvaloniaExamples" x:Class="AvaloniaExamples.Examples.UserControlDemo.MainWindow2" - Title="Plot in DataTemplate/UserControl" Height="480" Width="640"> + Title="Plot in DataTemplate/UserControl" Height="480" Width="640" + x:DataType="UserControlDemo:Context2"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/UserControlDemo/MainWindow2.axaml.cs b/Source/Examples/Avalonia/AvaloniaExamples/Examples/UserControlDemo/MainWindow2.axaml.cs index a166c1e..ab1cef7 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/UserControlDemo/MainWindow2.axaml.cs +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/UserControlDemo/MainWindow2.axaml.cs @@ -10,7 +10,6 @@ namespace AvaloniaExamples.Examples.UserControlDemo { using System.Collections.Generic; - using System.Windows; using AvaloniaExamples; @@ -23,8 +22,7 @@ public partial class MainWindow2 : Avalonia.Controls.Window public MainWindow2() { this.InitializeComponent(); - this.DataContext = new { Models = new List { new ViewModel { Title = "Plot1" }, new ViewModel { Title = "Plot2" } } }; - App.AttachDevTools(this); + this.DataContext = new Context2(new List { new ViewModel { Title = "Plot1" }, new ViewModel { Title = "Plot2" } }); } private void InitializeComponent() @@ -34,4 +32,6 @@ private void InitializeComponent() public IList Models { get; set; } } + + internal record Context2(List Models); } \ No newline at end of file diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/UserControlDemo/MainWindow3.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/UserControlDemo/MainWindow3.axaml index 2ecf94b..7fa97e7 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/UserControlDemo/MainWindow3.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/UserControlDemo/MainWindow3.axaml @@ -4,7 +4,8 @@ xmlns:UserControlDemo="clr-namespace:AvaloniaExamples.Examples.UserControlDemo;assembly=AvaloniaExamples" xmlns:oxy="clr-namespace:OxyPlot.Avalonia;assembly=OxyPlot.Avalonia" x:Class="AvaloniaExamples.Examples.UserControlDemo.MainWindow3" - Title="Plot in DataTemplate" Height="480" Width="640"> + Title="Plot in DataTemplate" Height="480" Width="640" + x:DataType="UserControlDemo:ViewModel"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/Examples/UserControlDemo/UserControl1.axaml b/Source/Examples/Avalonia/AvaloniaExamples/Examples/UserControlDemo/UserControl1.axaml index c43e2ba..c3dd2d3 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/Examples/UserControlDemo/UserControl1.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/Examples/UserControlDemo/UserControl1.axaml @@ -3,9 +3,10 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:local="using:AvaloniaExamples.Examples.UserControlDemo" xmlns:oxy="clr-namespace:OxyPlot.Avalonia;assembly=OxyPlot.Avalonia" x:Class="AvaloniaExamples.Examples.UserControlDemo.UserControl1" - > + x:DataType="local:ViewModel"> diff --git a/Source/Examples/Avalonia/AvaloniaExamples/MainWindow.axaml b/Source/Examples/Avalonia/AvaloniaExamples/MainWindow.axaml index 5483433..477d8ad 100644 --- a/Source/Examples/Avalonia/AvaloniaExamples/MainWindow.axaml +++ b/Source/Examples/Avalonia/AvaloniaExamples/MainWindow.axaml @@ -3,7 +3,8 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="AvaloniaExamples.MainWindow" xmlns:local="clr-namespace:AvaloniaExamples" - Title="OxyPlot WPF/XAML examples" Height="800" Width="480"> + Title="OxyPlot WPF/XAML examples" Height="800" Width="480" + x:DataType="local:MainWindow"> @@ -35,7 +34,6 @@ public MainWindow() InitializeComponent(); ListBox.ItemsSource = this.Examples = this.GetExamples(this.GetType().Assembly).OrderBy(e => e.Title).ToArray(); this.DataContext = this; - DevToolsExtensions.AttachDevTools(this); } private void InitializeComponent() diff --git a/Source/Examples/Avalonia/ExampleBrowser/App.axaml.cs b/Source/Examples/Avalonia/ExampleBrowser/App.axaml.cs index 294821a..3738a3b 100644 --- a/Source/Examples/Avalonia/ExampleBrowser/App.axaml.cs +++ b/Source/Examples/Avalonia/ExampleBrowser/App.axaml.cs @@ -1,4 +1,5 @@ using Avalonia; +using Avalonia.Controls; using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Markup.Xaml; @@ -9,6 +10,9 @@ public class App : Application public override void Initialize() { AvaloniaXamlLoader.Load(this); +#if DEBUG + this.AttachDeveloperTools(); +#endif } public override void OnFrameworkInitializationCompleted() diff --git a/Source/Examples/Avalonia/ExampleBrowser/ExampleBrowser.csproj b/Source/Examples/Avalonia/ExampleBrowser/ExampleBrowser.csproj index 90ea5f9..bb45fa2 100644 --- a/Source/Examples/Avalonia/ExampleBrowser/ExampleBrowser.csproj +++ b/Source/Examples/Avalonia/ExampleBrowser/ExampleBrowser.csproj @@ -1,12 +1,12 @@  WinExe - net8.0 + net10.0 - + diff --git a/Source/Examples/Avalonia/ExampleBrowser/MainWindow.axaml b/Source/Examples/Avalonia/ExampleBrowser/MainWindow.axaml index a73203a..ec3e896 100644 --- a/Source/Examples/Avalonia/ExampleBrowser/MainWindow.axaml +++ b/Source/Examples/Avalonia/ExampleBrowser/MainWindow.axaml @@ -7,6 +7,7 @@ xmlns:exampleBrowser="clr-namespace:ExampleBrowser;assembly=ExampleBrowser" xmlns:exampleLibrary="clr-namespace:ExampleLibrary;assembly=ExampleLibrary" x:Class="ExampleBrowser.MainWindow" + x:DataType="exampleBrowser:MainViewModel" Title="Example Browser"> diff --git a/Source/Examples/Avalonia/ExampleBrowser/MainWindow.axaml.cs b/Source/Examples/Avalonia/ExampleBrowser/MainWindow.axaml.cs index 671653a..c8a0e51 100644 --- a/Source/Examples/Avalonia/ExampleBrowser/MainWindow.axaml.cs +++ b/Source/Examples/Avalonia/ExampleBrowser/MainWindow.axaml.cs @@ -9,9 +9,6 @@ public partial class MainWindow : Window public MainWindow() { InitializeComponent(); -#if DEBUG - this.AttachDevTools(); -#endif } private void InitializeComponent() diff --git a/Source/Examples/Avalonia/MemoryTest/App.axaml.cs b/Source/Examples/Avalonia/MemoryTest/App.axaml.cs index 361180d..19b5726 100644 --- a/Source/Examples/Avalonia/MemoryTest/App.axaml.cs +++ b/Source/Examples/Avalonia/MemoryTest/App.axaml.cs @@ -13,37 +13,38 @@ class App : Application public override void Initialize() { AvaloniaXamlLoader.Load(this); - base.Initialize(); +#if DEBUG + this.AttachDeveloperTools(); +#endif } public override void OnFrameworkInitializationCompleted() { - if (!(ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)) + if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) { - throw new PlatformNotSupportedException(); + desktop.MainWindow = new MainWindow(); } - desktop.MainWindow = new MainWindow(); - base.OnFrameworkInitializationCompleted(); } + } - static void Main(string[] args) + public class Program + { + public static AppBuilder BuildAvaloniaApp() { OxyPlotModule.EnsureLoaded(); - AppBuilder.Configure() - .UsePlatformDetect() + var builder = AppBuilder.Configure() + .UsePlatformDetect(); #if DEBUG - .LogToTrace() + builder.LogToTrace(); #endif - .StartWithClassicDesktopLifetime(args); + return builder; } - public static void AttachDevTools(Window window) + public static void Main(string[] args) { -#if DEBUG - DevToolsExtensions.AttachDevTools(window); -#endif + BuildAvaloniaApp().StartWithClassicDesktopLifetime(args); } } } diff --git a/Source/Examples/Avalonia/MemoryTest/MainWindow.axaml.cs b/Source/Examples/Avalonia/MemoryTest/MainWindow.axaml.cs index 6c19274..a46d688 100644 --- a/Source/Examples/Avalonia/MemoryTest/MainWindow.axaml.cs +++ b/Source/Examples/Avalonia/MemoryTest/MainWindow.axaml.cs @@ -8,7 +8,6 @@ public partial class MainWindow : Window public MainWindow() { this.InitializeComponent(); - App.AttachDevTools(this); } private void InitializeComponent() diff --git a/Source/Examples/Avalonia/MemoryTest/MemoryTest.csproj b/Source/Examples/Avalonia/MemoryTest/MemoryTest.csproj index c13c26a..36c4f93 100644 --- a/Source/Examples/Avalonia/MemoryTest/MemoryTest.csproj +++ b/Source/Examples/Avalonia/MemoryTest/MemoryTest.csproj @@ -1,13 +1,13 @@  - net8.0 + net10.0 Exe - + - + \ No newline at end of file diff --git a/Source/Examples/Avalonia/MemoryTest/Window1.axaml b/Source/Examples/Avalonia/MemoryTest/Window1.axaml index 8d5028c..2139146 100644 --- a/Source/Examples/Avalonia/MemoryTest/Window1.axaml +++ b/Source/Examples/Avalonia/MemoryTest/Window1.axaml @@ -2,6 +2,8 @@ xmlns:oxy="http://oxyplot.org/avalonia" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="MemoryTest.Window1" + xmlns:local="clr-namespace:MemoryTest" + x:DataType="local:Window1" MinWidth="500" MinHeight="300"> diff --git a/Source/Examples/Avalonia/MemoryTest/Window1.axaml.cs b/Source/Examples/Avalonia/MemoryTest/Window1.axaml.cs index b04f0db..c889c62 100644 --- a/Source/Examples/Avalonia/MemoryTest/Window1.axaml.cs +++ b/Source/Examples/Avalonia/MemoryTest/Window1.axaml.cs @@ -17,8 +17,6 @@ public Window1() DataContext = Model; InitializeComponent(); - - App.AttachDevTools(this); } private void InitializeComponent() diff --git a/Source/Examples/Avalonia/MemoryTest/Window2.axaml b/Source/Examples/Avalonia/MemoryTest/Window2.axaml index dd19f38..17c1756 100644 --- a/Source/Examples/Avalonia/MemoryTest/Window2.axaml +++ b/Source/Examples/Avalonia/MemoryTest/Window2.axaml @@ -2,6 +2,8 @@ xmlns:oxy="http://oxyplot.org/avalonia" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="MemoryTest.Window2" + xmlns:local="clr-namespace:MemoryTest" + x:DataType="local:Window2" MinWidth="500" MinHeight="300"> diff --git a/Source/Examples/Avalonia/MemoryTest/Window2.axaml.cs b/Source/Examples/Avalonia/MemoryTest/Window2.axaml.cs index 71745e0..9382e75 100644 --- a/Source/Examples/Avalonia/MemoryTest/Window2.axaml.cs +++ b/Source/Examples/Avalonia/MemoryTest/Window2.axaml.cs @@ -22,7 +22,6 @@ public Window2() } InitializeComponent(); - App.AttachDevTools(this); DataContext = Plots; } diff --git a/Source/Examples/Avalonia/SimpleDemo/App.axaml.cs b/Source/Examples/Avalonia/SimpleDemo/App.axaml.cs index 2548a40..faeed3f 100644 --- a/Source/Examples/Avalonia/SimpleDemo/App.axaml.cs +++ b/Source/Examples/Avalonia/SimpleDemo/App.axaml.cs @@ -1,4 +1,5 @@ using Avalonia; +using Avalonia.Controls; using Avalonia.Controls.ApplicationLifetimes; using Avalonia.Markup.Xaml; using OxyPlot.Avalonia; @@ -8,35 +9,37 @@ namespace SimpleDemo { class App : Application { - public App() - { - RegisterServices(); - } - public override void Initialize() { AvaloniaXamlLoader.Load(this); - base.Initialize(); +#if DEBUG + this.AttachDeveloperTools(); +#endif } public override void OnFrameworkInitializationCompleted() { - if (!(ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)) + if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) { - throw new PlatformNotSupportedException(); + desktop.MainWindow = new MainWindow(); } - desktop.MainWindow = new MainWindow(); - base.OnFrameworkInitializationCompleted(); } + } - public static void Main(string[] args) + public class Program + { + public static AppBuilder BuildAvaloniaApp() { OxyPlotModule.EnsureLoaded(); - AppBuilder.Configure() - .UsePlatformDetect() - .StartWithClassicDesktopLifetime(args); + return AppBuilder.Configure() + .UsePlatformDetect(); + } + + public static void Main(string[] args) + { + BuildAvaloniaApp().StartWithClassicDesktopLifetime(args); } } } diff --git a/Source/Examples/Avalonia/SimpleDemo/MainWindow.axaml b/Source/Examples/Avalonia/SimpleDemo/MainWindow.axaml index 8e2b0ca..3d2d634 100644 --- a/Source/Examples/Avalonia/SimpleDemo/MainWindow.axaml +++ b/Source/Examples/Avalonia/SimpleDemo/MainWindow.axaml @@ -3,6 +3,7 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:oxy="clr-namespace:OxyPlot.Avalonia;assembly=OxyPlot.Avalonia" xmlns:simpleDemo="clr-namespace:SimpleDemo;assembly=SimpleDemo" + x:DataType="simpleDemo:MainViewModel" Title="OxyPlot SimpleDemo" Height="480" Width="640"> diff --git a/Source/Examples/Avalonia/SimpleDemo/MainWindow.axaml.cs b/Source/Examples/Avalonia/SimpleDemo/MainWindow.axaml.cs index 44352a2..a712ad6 100644 --- a/Source/Examples/Avalonia/SimpleDemo/MainWindow.axaml.cs +++ b/Source/Examples/Avalonia/SimpleDemo/MainWindow.axaml.cs @@ -25,7 +25,6 @@ public partial class MainWindow : Window public MainWindow() { InitializeComponent(); - this.AttachDevTools(); } private void InitializeComponent() diff --git a/Source/Examples/Avalonia/SimpleDemo/SimpleDemo.csproj b/Source/Examples/Avalonia/SimpleDemo/SimpleDemo.csproj index e84ede3..5ee531e 100644 --- a/Source/Examples/Avalonia/SimpleDemo/SimpleDemo.csproj +++ b/Source/Examples/Avalonia/SimpleDemo/SimpleDemo.csproj @@ -1,14 +1,14 @@  - net8.0 + net10.0 Exe - + - + \ No newline at end of file diff --git a/Source/OxyPlot.Avalonia.sln b/Source/OxyPlot.Avalonia.sln index 84b5a41..0ce89c5 100644 --- a/Source/OxyPlot.Avalonia.sln +++ b/Source/OxyPlot.Avalonia.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29409.12 +# Visual Studio Version 17 +VisualStudioVersion = 17.14.37027.9 d17.14 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OxyPlot.Avalonia", "OxyPlot.Avalonia\OxyPlot.Avalonia.csproj", "{33F816D5-7FAA-46EC-947E-9B51CB366D9D}" EndProject @@ -28,6 +28,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AvaloniaExamples", "Example EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExampleBrowser", "Examples\Avalonia\ExampleBrowser\ExampleBrowser.csproj", "{E4993D0B-C4C6-47CE-A55E-19EFB28EC034}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{8EC462FD-D22E-90A8-E5CE-7E832BA40C5D}" + ProjectSection(SolutionItems) = preProject + Directory.Build.props = Directory.Build.props + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU diff --git a/Source/OxyPlot.Avalonia/OxyPlot.Avalonia.csproj b/Source/OxyPlot.Avalonia/OxyPlot.Avalonia.csproj index 7874ce4..cb26b6b 100644 --- a/Source/OxyPlot.Avalonia/OxyPlot.Avalonia.csproj +++ b/Source/OxyPlot.Avalonia/OxyPlot.Avalonia.csproj @@ -1,6 +1,6 @@  - netstandard2.0 + net10.0 Oxyplot.Avalonia True OxyPlot is a plotting library for .NET. This is a support library for OxyPlot to work with AvaloniaUI. diff --git a/Source/OxyPlot.Avalonia/PlotBase.cs b/Source/OxyPlot.Avalonia/PlotBase.cs index 1d43d90..f9f348e 100644 --- a/Source/OxyPlot.Avalonia/PlotBase.cs +++ b/Source/OxyPlot.Avalonia/PlotBase.cs @@ -8,6 +8,7 @@ // -------------------------------------------------------------------------------------------------------------------- using Avalonia.Reactive; +using Avalonia.Input.Platform; namespace OxyPlot.Avalonia { diff --git a/Source/OxyPlot.Avalonia/Themes/Default.axaml b/Source/OxyPlot.Avalonia/Themes/Default.axaml index 9395e97..6b5dcf4 100644 --- a/Source/OxyPlot.Avalonia/Themes/Default.axaml +++ b/Source/OxyPlot.Avalonia/Themes/Default.axaml @@ -1,7 +1,9 @@ - +