diff --git a/.ncrunch/Avalonia.Android.v3.ncrunchproject b/.ncrunch/Avalonia.Android.v3.ncrunchproject
index a4953e14f9..319cd523ce 100644
--- a/.ncrunch/Avalonia.Android.v3.ncrunchproject
+++ b/.ncrunch/Avalonia.Android.v3.ncrunchproject
@@ -1,6 +1,5 @@
True
- True
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Animation.UnitTests.netcoreapp2.0.v3.ncrunchproject b/.ncrunch/Avalonia.Animation.UnitTests.netcoreapp2.0.v3.ncrunchproject
deleted file mode 100644
index e9d39b0c74..0000000000
--- a/.ncrunch/Avalonia.Animation.UnitTests.netcoreapp2.0.v3.ncrunchproject
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Animation.v3.ncrunchproject b/.ncrunch/Avalonia.Animation.v3.ncrunchproject
deleted file mode 100644
index e12537d535..0000000000
--- a/.ncrunch/Avalonia.Animation.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Base.UnitTests.net461.v3.ncrunchproject b/.ncrunch/Avalonia.Base.UnitTests.net461.v3.ncrunchproject
deleted file mode 100644
index 6800b4a3fe..0000000000
--- a/.ncrunch/Avalonia.Base.UnitTests.net461.v3.ncrunchproject
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Base.UnitTests.net47.v3.ncrunchproject b/.ncrunch/Avalonia.Base.UnitTests.net47.v3.ncrunchproject
deleted file mode 100644
index e9d39b0c74..0000000000
--- a/.ncrunch/Avalonia.Base.UnitTests.net47.v3.ncrunchproject
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Base.UnitTests.netcoreapp2.0.v3.ncrunchproject b/.ncrunch/Avalonia.Base.UnitTests.netcoreapp2.0.v3.ncrunchproject
deleted file mode 100644
index e9d39b0c74..0000000000
--- a/.ncrunch/Avalonia.Base.UnitTests.netcoreapp2.0.v3.ncrunchproject
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Base.UnitTests.v3.ncrunchproject b/.ncrunch/Avalonia.Base.UnitTests.v3.ncrunchproject
deleted file mode 100644
index 13f78c1d4c..0000000000
--- a/.ncrunch/Avalonia.Base.UnitTests.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- LongTestTimesWithoutParallelExecution
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Base.v3.ncrunchproject b/.ncrunch/Avalonia.Base.v3.ncrunchproject
deleted file mode 100644
index e12537d535..0000000000
--- a/.ncrunch/Avalonia.Base.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Benchmarks.v3.ncrunchproject b/.ncrunch/Avalonia.Benchmarks.v3.ncrunchproject
deleted file mode 100644
index e12537d535..0000000000
--- a/.ncrunch/Avalonia.Benchmarks.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Build.Tasks.v3.ncrunchproject b/.ncrunch/Avalonia.Build.Tasks.v3.ncrunchproject
deleted file mode 100644
index 95a483b433..0000000000
--- a/.ncrunch/Avalonia.Build.Tasks.v3.ncrunchproject
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Cairo.RenderTests.v3.ncrunchproject b/.ncrunch/Avalonia.Cairo.RenderTests.v3.ncrunchproject
deleted file mode 100644
index 101c806e63..0000000000
--- a/.ncrunch/Avalonia.Cairo.RenderTests.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- AbnormalReferenceResolution
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Cairo.v3.ncrunchproject b/.ncrunch/Avalonia.Cairo.v3.ncrunchproject
deleted file mode 100644
index 6800b4a3fe..0000000000
--- a/.ncrunch/Avalonia.Cairo.v3.ncrunchproject
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Controls.DataGrid.v3.ncrunchproject b/.ncrunch/Avalonia.Controls.DataGrid.v3.ncrunchproject
deleted file mode 100644
index e9d39b0c74..0000000000
--- a/.ncrunch/Avalonia.Controls.DataGrid.v3.ncrunchproject
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Controls.UnitTests.net461.v3.ncrunchproject b/.ncrunch/Avalonia.Controls.UnitTests.net461.v3.ncrunchproject
deleted file mode 100644
index 6800b4a3fe..0000000000
--- a/.ncrunch/Avalonia.Controls.UnitTests.net461.v3.ncrunchproject
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Controls.UnitTests.net47.v3.ncrunchproject b/.ncrunch/Avalonia.Controls.UnitTests.net47.v3.ncrunchproject
deleted file mode 100644
index f30a20df78..0000000000
--- a/.ncrunch/Avalonia.Controls.UnitTests.net47.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
- Avalonia.Controls.UnitTests.TimePickerTests
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Controls.UnitTests.netcoreapp2.0.v3.ncrunchproject b/.ncrunch/Avalonia.Controls.UnitTests.netcoreapp2.0.v3.ncrunchproject
deleted file mode 100644
index e9d39b0c74..0000000000
--- a/.ncrunch/Avalonia.Controls.UnitTests.netcoreapp2.0.v3.ncrunchproject
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Controls.UnitTests.v3.ncrunchproject b/.ncrunch/Avalonia.Controls.UnitTests.v3.ncrunchproject
deleted file mode 100644
index 13f78c1d4c..0000000000
--- a/.ncrunch/Avalonia.Controls.UnitTests.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- LongTestTimesWithoutParallelExecution
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Controls.v3.ncrunchproject b/.ncrunch/Avalonia.Controls.v3.ncrunchproject
deleted file mode 100644
index e12537d535..0000000000
--- a/.ncrunch/Avalonia.Controls.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Designer.HostApp.net461.v3.ncrunchproject b/.ncrunch/Avalonia.Designer.HostApp.net461.v3.ncrunchproject
index e9d39b0c74..319cd523ce 100644
--- a/.ncrunch/Avalonia.Designer.HostApp.net461.v3.ncrunchproject
+++ b/.ncrunch/Avalonia.Designer.HostApp.net461.v3.ncrunchproject
@@ -1,7 +1,5 @@
-
- MissingOrIgnoredProjectReference
-
+ True
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Designer.HostApp.netcoreapp2.0.v3.ncrunchproject b/.ncrunch/Avalonia.Designer.HostApp.netcoreapp2.0.v3.ncrunchproject
index e9d39b0c74..319cd523ce 100644
--- a/.ncrunch/Avalonia.Designer.HostApp.netcoreapp2.0.v3.ncrunchproject
+++ b/.ncrunch/Avalonia.Designer.HostApp.netcoreapp2.0.v3.ncrunchproject
@@ -1,7 +1,5 @@
-
- MissingOrIgnoredProjectReference
-
+ True
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Designer.v3.ncrunchproject b/.ncrunch/Avalonia.Designer.v3.ncrunchproject
deleted file mode 100644
index 6800b4a3fe..0000000000
--- a/.ncrunch/Avalonia.Designer.v3.ncrunchproject
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.DesignerSupport.TestApp.v3.ncrunchproject b/.ncrunch/Avalonia.DesignerSupport.TestApp.v3.ncrunchproject
index a4953e14f9..319cd523ce 100644
--- a/.ncrunch/Avalonia.DesignerSupport.TestApp.v3.ncrunchproject
+++ b/.ncrunch/Avalonia.DesignerSupport.TestApp.v3.ncrunchproject
@@ -1,6 +1,5 @@
True
- True
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.DesignerSupport.Tests.v3.ncrunchproject b/.ncrunch/Avalonia.DesignerSupport.Tests.v3.ncrunchproject
index a4953e14f9..319cd523ce 100644
--- a/.ncrunch/Avalonia.DesignerSupport.Tests.v3.ncrunchproject
+++ b/.ncrunch/Avalonia.DesignerSupport.Tests.v3.ncrunchproject
@@ -1,6 +1,5 @@
True
- True
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.DesignerSupport.v3.ncrunchproject b/.ncrunch/Avalonia.DesignerSupport.v3.ncrunchproject
deleted file mode 100644
index e12537d535..0000000000
--- a/.ncrunch/Avalonia.DesignerSupport.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Designer.HostApp.NetFX.v3.ncrunchproject b/.ncrunch/Avalonia.Desktop.net6.0.v3.ncrunchproject
similarity index 100%
rename from .ncrunch/Avalonia.Designer.HostApp.NetFX.v3.ncrunchproject
rename to .ncrunch/Avalonia.Desktop.net6.0.v3.ncrunchproject
diff --git a/.ncrunch/Avalonia.Designer.HostApp.v3.ncrunchproject b/.ncrunch/Avalonia.Desktop.netstandard2.0.v3.ncrunchproject
similarity index 100%
rename from .ncrunch/Avalonia.Designer.HostApp.v3.ncrunchproject
rename to .ncrunch/Avalonia.Desktop.netstandard2.0.v3.ncrunchproject
diff --git a/.ncrunch/Avalonia.DesktopRuntime.net461.v3.ncrunchproject b/.ncrunch/Avalonia.DesktopRuntime.net461.v3.ncrunchproject
deleted file mode 100644
index e9d39b0c74..0000000000
--- a/.ncrunch/Avalonia.DesktopRuntime.net461.v3.ncrunchproject
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.DesktopRuntime.netcoreapp2.0.v3.ncrunchproject b/.ncrunch/Avalonia.DesktopRuntime.netcoreapp2.0.v3.ncrunchproject
deleted file mode 100644
index e9d39b0c74..0000000000
--- a/.ncrunch/Avalonia.DesktopRuntime.netcoreapp2.0.v3.ncrunchproject
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.DesktopRuntime.v3.ncrunchproject b/.ncrunch/Avalonia.DesktopRuntime.v3.ncrunchproject
deleted file mode 100644
index 95a483b433..0000000000
--- a/.ncrunch/Avalonia.DesktopRuntime.v3.ncrunchproject
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Diagnostics.v3.ncrunchproject b/.ncrunch/Avalonia.Diagnostics.v3.ncrunchproject
deleted file mode 100644
index e12537d535..0000000000
--- a/.ncrunch/Avalonia.Diagnostics.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Direct2D1.RenderTests.v3.ncrunchproject b/.ncrunch/Avalonia.Direct2D1.RenderTests.v3.ncrunchproject
deleted file mode 100644
index 0846098ce5..0000000000
--- a/.ncrunch/Avalonia.Direct2D1.RenderTests.v3.ncrunchproject
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
- ..\TestFiles\Direct2D1\**.*
-
- 3000
-
- MissingOrIgnoredProjectReference
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Direct2D1.UnitTests.v3.ncrunchproject b/.ncrunch/Avalonia.Direct2D1.UnitTests.v3.ncrunchproject
deleted file mode 100644
index e12537d535..0000000000
--- a/.ncrunch/Avalonia.Direct2D1.UnitTests.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Direct2D1.v3.ncrunchproject b/.ncrunch/Avalonia.Direct2D1.v3.ncrunchproject
deleted file mode 100644
index e12537d535..0000000000
--- a/.ncrunch/Avalonia.Direct2D1.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Gtk3.v3.ncrunchproject b/.ncrunch/Avalonia.Gtk3.v3.ncrunchproject
deleted file mode 100644
index e9d39b0c74..0000000000
--- a/.ncrunch/Avalonia.Gtk3.v3.ncrunchproject
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Input.UnitTests.net461.v3.ncrunchproject b/.ncrunch/Avalonia.Input.UnitTests.net461.v3.ncrunchproject
deleted file mode 100644
index 6800b4a3fe..0000000000
--- a/.ncrunch/Avalonia.Input.UnitTests.net461.v3.ncrunchproject
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Input.UnitTests.net47.v3.ncrunchproject b/.ncrunch/Avalonia.Input.UnitTests.net47.v3.ncrunchproject
deleted file mode 100644
index e9d39b0c74..0000000000
--- a/.ncrunch/Avalonia.Input.UnitTests.net47.v3.ncrunchproject
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Input.UnitTests.netcoreapp2.0.v3.ncrunchproject b/.ncrunch/Avalonia.Input.UnitTests.netcoreapp2.0.v3.ncrunchproject
deleted file mode 100644
index e9d39b0c74..0000000000
--- a/.ncrunch/Avalonia.Input.UnitTests.netcoreapp2.0.v3.ncrunchproject
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Input.UnitTests.v3.ncrunchproject b/.ncrunch/Avalonia.Input.UnitTests.v3.ncrunchproject
deleted file mode 100644
index 6800b4a3fe..0000000000
--- a/.ncrunch/Avalonia.Input.UnitTests.v3.ncrunchproject
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Input.v3.ncrunchproject b/.ncrunch/Avalonia.Input.v3.ncrunchproject
deleted file mode 100644
index e12537d535..0000000000
--- a/.ncrunch/Avalonia.Input.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Interactivity.UnitTests.net461.v3.ncrunchproject b/.ncrunch/Avalonia.Interactivity.UnitTests.net461.v3.ncrunchproject
deleted file mode 100644
index 6800b4a3fe..0000000000
--- a/.ncrunch/Avalonia.Interactivity.UnitTests.net461.v3.ncrunchproject
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Interactivity.UnitTests.netcoreapp1.1.v3.ncrunchproject b/.ncrunch/Avalonia.Interactivity.UnitTests.netcoreapp1.1.v3.ncrunchproject
deleted file mode 100644
index 6800b4a3fe..0000000000
--- a/.ncrunch/Avalonia.Interactivity.UnitTests.netcoreapp1.1.v3.ncrunchproject
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Interactivity.UnitTests.v3.ncrunchproject b/.ncrunch/Avalonia.Interactivity.UnitTests.v3.ncrunchproject
deleted file mode 100644
index e12537d535..0000000000
--- a/.ncrunch/Avalonia.Interactivity.UnitTests.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Interactivity.v3.ncrunchproject b/.ncrunch/Avalonia.Interactivity.v3.ncrunchproject
deleted file mode 100644
index e12537d535..0000000000
--- a/.ncrunch/Avalonia.Interactivity.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Layout.UnitTests.net461.v3.ncrunchproject b/.ncrunch/Avalonia.Layout.UnitTests.net461.v3.ncrunchproject
deleted file mode 100644
index 6800b4a3fe..0000000000
--- a/.ncrunch/Avalonia.Layout.UnitTests.net461.v3.ncrunchproject
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Layout.UnitTests.v3.ncrunchproject b/.ncrunch/Avalonia.Layout.UnitTests.v3.ncrunchproject
deleted file mode 100644
index e12537d535..0000000000
--- a/.ncrunch/Avalonia.Layout.UnitTests.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Layout.v3.ncrunchproject b/.ncrunch/Avalonia.Layout.v3.ncrunchproject
deleted file mode 100644
index e12537d535..0000000000
--- a/.ncrunch/Avalonia.Layout.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.LeakTests.v3.ncrunchproject b/.ncrunch/Avalonia.LeakTests.v3.ncrunchproject
deleted file mode 100644
index e12537d535..0000000000
--- a/.ncrunch/Avalonia.LeakTests.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.LinuxFramebuffer.v3.ncrunchproject b/.ncrunch/Avalonia.LinuxFramebuffer.v3.ncrunchproject
deleted file mode 100644
index e12537d535..0000000000
--- a/.ncrunch/Avalonia.LinuxFramebuffer.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Logging.Serilog.v3.ncrunchproject b/.ncrunch/Avalonia.Logging.Serilog.v3.ncrunchproject
deleted file mode 100644
index e12537d535..0000000000
--- a/.ncrunch/Avalonia.Logging.Serilog.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Markup.UnitTests.net461.v3.ncrunchproject b/.ncrunch/Avalonia.Markup.UnitTests.net461.v3.ncrunchproject
deleted file mode 100644
index 6800b4a3fe..0000000000
--- a/.ncrunch/Avalonia.Markup.UnitTests.net461.v3.ncrunchproject
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Markup.UnitTests.net47.v3.ncrunchproject b/.ncrunch/Avalonia.Markup.UnitTests.net47.v3.ncrunchproject
deleted file mode 100644
index e9d39b0c74..0000000000
--- a/.ncrunch/Avalonia.Markup.UnitTests.net47.v3.ncrunchproject
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Markup.UnitTests.netcoreapp1.1.v3.ncrunchproject b/.ncrunch/Avalonia.Markup.UnitTests.netcoreapp1.1.v3.ncrunchproject
deleted file mode 100644
index 15d9efad87..0000000000
--- a/.ncrunch/Avalonia.Markup.UnitTests.netcoreapp1.1.v3.ncrunchproject
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
- Avalonia.Markup.UnitTests.Data.Plugins.DataAnnotationsValidationPluginTests.Produces_Aggregate_BindingNotificationsx
-
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Markup.UnitTests.netcoreapp2.0.v3.ncrunchproject b/.ncrunch/Avalonia.Markup.UnitTests.netcoreapp2.0.v3.ncrunchproject
deleted file mode 100644
index e9d39b0c74..0000000000
--- a/.ncrunch/Avalonia.Markup.UnitTests.netcoreapp2.0.v3.ncrunchproject
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Markup.UnitTests.v3.ncrunchproject b/.ncrunch/Avalonia.Markup.UnitTests.v3.ncrunchproject
deleted file mode 100644
index 6800b4a3fe..0000000000
--- a/.ncrunch/Avalonia.Markup.UnitTests.v3.ncrunchproject
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Markup.Xaml.UnitTests.net461.v3.ncrunchproject b/.ncrunch/Avalonia.Markup.Xaml.UnitTests.net461.v3.ncrunchproject
deleted file mode 100644
index 6800b4a3fe..0000000000
--- a/.ncrunch/Avalonia.Markup.Xaml.UnitTests.net461.v3.ncrunchproject
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Markup.Xaml.UnitTests.net47.v3.ncrunchproject b/.ncrunch/Avalonia.Markup.Xaml.UnitTests.net47.v3.ncrunchproject
deleted file mode 100644
index e9d39b0c74..0000000000
--- a/.ncrunch/Avalonia.Markup.Xaml.UnitTests.net47.v3.ncrunchproject
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Markup.Xaml.UnitTests.netcoreapp2.0.v3.ncrunchproject b/.ncrunch/Avalonia.Markup.Xaml.UnitTests.netcoreapp2.0.v3.ncrunchproject
deleted file mode 100644
index e9d39b0c74..0000000000
--- a/.ncrunch/Avalonia.Markup.Xaml.UnitTests.netcoreapp2.0.v3.ncrunchproject
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Markup.Xaml.UnitTests.v3.ncrunchproject b/.ncrunch/Avalonia.Markup.Xaml.UnitTests.v3.ncrunchproject
deleted file mode 100644
index 6800b4a3fe..0000000000
--- a/.ncrunch/Avalonia.Markup.Xaml.UnitTests.v3.ncrunchproject
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Markup.Xaml.v3.ncrunchproject b/.ncrunch/Avalonia.Markup.Xaml.v3.ncrunchproject
deleted file mode 100644
index e12537d535..0000000000
--- a/.ncrunch/Avalonia.Markup.Xaml.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Markup.v3.ncrunchproject b/.ncrunch/Avalonia.Markup.v3.ncrunchproject
deleted file mode 100644
index e12537d535..0000000000
--- a/.ncrunch/Avalonia.Markup.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.MicroCom.v3.ncrunchproject b/.ncrunch/Avalonia.MicroCom.v3.ncrunchproject
deleted file mode 100644
index 95a483b433..0000000000
--- a/.ncrunch/Avalonia.MicroCom.v3.ncrunchproject
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Native.net6.0.v3.ncrunchproject b/.ncrunch/Avalonia.Native.net6.0.v3.ncrunchproject
new file mode 100644
index 0000000000..e8de009693
--- /dev/null
+++ b/.ncrunch/Avalonia.Native.net6.0.v3.ncrunchproject
@@ -0,0 +1,6 @@
+
+
+ True
+
+
+
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Desktop.v3.ncrunchproject b/.ncrunch/Avalonia.Native.netstandard2.0.v3.ncrunchproject
similarity index 100%
rename from .ncrunch/Avalonia.Desktop.v3.ncrunchproject
rename to .ncrunch/Avalonia.Native.netstandard2.0.v3.ncrunchproject
diff --git a/.ncrunch/Avalonia.OpenGL.v3.ncrunchproject b/.ncrunch/Avalonia.OpenGL.v3.ncrunchproject
deleted file mode 100644
index e9d39b0c74..0000000000
--- a/.ncrunch/Avalonia.OpenGL.v3.ncrunchproject
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.ReactiveUI.UnitTests.v3.ncrunchproject b/.ncrunch/Avalonia.ReactiveUI.UnitTests.v3.ncrunchproject
deleted file mode 100644
index e9d39b0c74..0000000000
--- a/.ncrunch/Avalonia.ReactiveUI.UnitTests.v3.ncrunchproject
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.ReactiveUI.v3.ncrunchproject b/.ncrunch/Avalonia.ReactiveUI.v3.ncrunchproject
deleted file mode 100644
index e12537d535..0000000000
--- a/.ncrunch/Avalonia.ReactiveUI.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.RenderTests.v3.ncrunchproject b/.ncrunch/Avalonia.RenderTests.v3.ncrunchproject
deleted file mode 100644
index 95a483b433..0000000000
--- a/.ncrunch/Avalonia.RenderTests.v3.ncrunchproject
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Skia.Android.v3.ncrunchproject b/.ncrunch/Avalonia.Skia.Android.v3.ncrunchproject
deleted file mode 100644
index a4953e14f9..0000000000
--- a/.ncrunch/Avalonia.Skia.Android.v3.ncrunchproject
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
- True
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Skia.Desktop.v3.ncrunchproject b/.ncrunch/Avalonia.Skia.Desktop.v3.ncrunchproject
deleted file mode 100644
index ae3801f32b..0000000000
--- a/.ncrunch/Avalonia.Skia.Desktop.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- True
- False
- True
- x86
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Skia.RenderTests.v3.ncrunchproject b/.ncrunch/Avalonia.Skia.RenderTests.v3.ncrunchproject
deleted file mode 100644
index 2966be8f73..0000000000
--- a/.ncrunch/Avalonia.Skia.RenderTests.v3.ncrunchproject
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
- ..\TestFiles\Skia\**.*
-
- 3000
-
- MissingOrIgnoredProjectReference
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Skia.UnitTests.v3.ncrunchproject b/.ncrunch/Avalonia.Skia.UnitTests.v3.ncrunchproject
deleted file mode 100644
index e9d39b0c74..0000000000
--- a/.ncrunch/Avalonia.Skia.UnitTests.v3.ncrunchproject
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Skia.iOS.v3.ncrunchproject b/.ncrunch/Avalonia.Skia.iOS.v3.ncrunchproject
deleted file mode 100644
index a4953e14f9..0000000000
--- a/.ncrunch/Avalonia.Skia.iOS.v3.ncrunchproject
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
- True
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Skia.v3.ncrunchproject b/.ncrunch/Avalonia.Skia.v3.ncrunchproject
deleted file mode 100644
index e9d39b0c74..0000000000
--- a/.ncrunch/Avalonia.Skia.v3.ncrunchproject
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Styling.UnitTests.net461.v3.ncrunchproject b/.ncrunch/Avalonia.Styling.UnitTests.net461.v3.ncrunchproject
deleted file mode 100644
index 6800b4a3fe..0000000000
--- a/.ncrunch/Avalonia.Styling.UnitTests.net461.v3.ncrunchproject
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Styling.UnitTests.net47.v3.ncrunchproject b/.ncrunch/Avalonia.Styling.UnitTests.net47.v3.ncrunchproject
deleted file mode 100644
index e9d39b0c74..0000000000
--- a/.ncrunch/Avalonia.Styling.UnitTests.net47.v3.ncrunchproject
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Styling.UnitTests.netcoreapp2.0.v3.ncrunchproject b/.ncrunch/Avalonia.Styling.UnitTests.netcoreapp2.0.v3.ncrunchproject
deleted file mode 100644
index e9d39b0c74..0000000000
--- a/.ncrunch/Avalonia.Styling.UnitTests.netcoreapp2.0.v3.ncrunchproject
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Styling.UnitTests.v3.ncrunchproject b/.ncrunch/Avalonia.Styling.UnitTests.v3.ncrunchproject
deleted file mode 100644
index 6800b4a3fe..0000000000
--- a/.ncrunch/Avalonia.Styling.UnitTests.v3.ncrunchproject
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Styling.v3.ncrunchproject b/.ncrunch/Avalonia.Styling.v3.ncrunchproject
deleted file mode 100644
index e12537d535..0000000000
--- a/.ncrunch/Avalonia.Styling.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Themes.Default.v3.ncrunchproject b/.ncrunch/Avalonia.Themes.Default.v3.ncrunchproject
deleted file mode 100644
index e12537d535..0000000000
--- a/.ncrunch/Avalonia.Themes.Default.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.UnitTests.net461.v3.ncrunchproject b/.ncrunch/Avalonia.UnitTests.net461.v3.ncrunchproject
deleted file mode 100644
index 6800b4a3fe..0000000000
--- a/.ncrunch/Avalonia.UnitTests.net461.v3.ncrunchproject
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.UnitTests.v3.ncrunchproject b/.ncrunch/Avalonia.UnitTests.v3.ncrunchproject
deleted file mode 100644
index e12537d535..0000000000
--- a/.ncrunch/Avalonia.UnitTests.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Visuals.UnitTests.net461.v3.ncrunchproject b/.ncrunch/Avalonia.Visuals.UnitTests.net461.v3.ncrunchproject
deleted file mode 100644
index 6800b4a3fe..0000000000
--- a/.ncrunch/Avalonia.Visuals.UnitTests.net461.v3.ncrunchproject
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Visuals.UnitTests.net47.v3.ncrunchproject b/.ncrunch/Avalonia.Visuals.UnitTests.net47.v3.ncrunchproject
deleted file mode 100644
index e9d39b0c74..0000000000
--- a/.ncrunch/Avalonia.Visuals.UnitTests.net47.v3.ncrunchproject
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Visuals.UnitTests.netcoreapp2.0.v3.ncrunchproject b/.ncrunch/Avalonia.Visuals.UnitTests.netcoreapp2.0.v3.ncrunchproject
deleted file mode 100644
index e9d39b0c74..0000000000
--- a/.ncrunch/Avalonia.Visuals.UnitTests.netcoreapp2.0.v3.ncrunchproject
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Visuals.UnitTests.v3.ncrunchproject b/.ncrunch/Avalonia.Visuals.UnitTests.v3.ncrunchproject
deleted file mode 100644
index ee655751a0..0000000000
--- a/.ncrunch/Avalonia.Visuals.UnitTests.v3.ncrunchproject
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
- AbnormalReferenceResolution
- LongTestTimesWithoutParallelExecution
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Visuals.v3.ncrunchproject b/.ncrunch/Avalonia.Visuals.v3.ncrunchproject
deleted file mode 100644
index e12537d535..0000000000
--- a/.ncrunch/Avalonia.Visuals.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Win32.Interop.v3.ncrunchproject b/.ncrunch/Avalonia.Win32.Interop.v3.ncrunchproject
deleted file mode 100644
index e12537d535..0000000000
--- a/.ncrunch/Avalonia.Win32.Interop.v3.ncrunchproject
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Win32.v3.ncrunchproject b/.ncrunch/Avalonia.Win32.net6.0.v3.ncrunchproject
similarity index 50%
rename from .ncrunch/Avalonia.Win32.v3.ncrunchproject
rename to .ncrunch/Avalonia.Win32.net6.0.v3.ncrunchproject
index bc2ee91007..28b692bb51 100644
--- a/.ncrunch/Avalonia.Win32.v3.ncrunchproject
+++ b/.ncrunch/Avalonia.Win32.net6.0.v3.ncrunchproject
@@ -3,9 +3,5 @@
..\..\tools\MicroComGenerator\bin\Debug\net6.0\**.*
-
- MissingOrIgnoredProjectReference
-
- True
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Win32.netstandard2.0.v3.ncrunchproject b/.ncrunch/Avalonia.Win32.netstandard2.0.v3.ncrunchproject
new file mode 100644
index 0000000000..28b692bb51
--- /dev/null
+++ b/.ncrunch/Avalonia.Win32.netstandard2.0.v3.ncrunchproject
@@ -0,0 +1,7 @@
+
+
+
+ ..\..\tools\MicroComGenerator\bin\Debug\net6.0\**.*
+
+
+
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.X11.v3.ncrunchproject b/.ncrunch/Avalonia.X11.v3.ncrunchproject
deleted file mode 100644
index e9d39b0c74..0000000000
--- a/.ncrunch/Avalonia.X11.v3.ncrunchproject
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- MissingOrIgnoredProjectReference
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.net461.v3.ncrunchproject b/.ncrunch/Avalonia.net461.v3.ncrunchproject
index 319cd523ce..4fdcd169ae 100644
--- a/.ncrunch/Avalonia.net461.v3.ncrunchproject
+++ b/.ncrunch/Avalonia.net461.v3.ncrunchproject
@@ -1,5 +1,7 @@
- True
+
+ DerivedFilesIncludedInWorkspace
+
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Animation.UnitTests.net47.v3.ncrunchproject b/.ncrunch/Avalonia.net6.0.v3.ncrunchproject
similarity index 59%
rename from .ncrunch/Avalonia.Animation.UnitTests.net47.v3.ncrunchproject
rename to .ncrunch/Avalonia.net6.0.v3.ncrunchproject
index e9d39b0c74..4fdcd169ae 100644
--- a/.ncrunch/Avalonia.Animation.UnitTests.net47.v3.ncrunchproject
+++ b/.ncrunch/Avalonia.net6.0.v3.ncrunchproject
@@ -1,7 +1,7 @@
- MissingOrIgnoredProjectReference
+ DerivedFilesIncludedInWorkspace
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.netcoreapp2.0.v3.ncrunchproject b/.ncrunch/Avalonia.netcoreapp2.0.v3.ncrunchproject
index 3f3c53a7fd..4fdcd169ae 100644
--- a/.ncrunch/Avalonia.netcoreapp2.0.v3.ncrunchproject
+++ b/.ncrunch/Avalonia.netcoreapp2.0.v3.ncrunchproject
@@ -2,7 +2,6 @@
DerivedFilesIncludedInWorkspace
- MissingOrIgnoredProjectReference
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.netstandard2.0.v3.ncrunchproject b/.ncrunch/Avalonia.netstandard2.0.v3.ncrunchproject
index 3f3c53a7fd..4fdcd169ae 100644
--- a/.ncrunch/Avalonia.netstandard2.0.v3.ncrunchproject
+++ b/.ncrunch/Avalonia.netstandard2.0.v3.ncrunchproject
@@ -2,7 +2,6 @@
DerivedFilesIncludedInWorkspace
- MissingOrIgnoredProjectReference
\ No newline at end of file
diff --git a/.ncrunch/BindingDemo.net461.v3.ncrunchproject b/.ncrunch/BindingDemo.net461.v3.ncrunchproject
deleted file mode 100644
index 319cd523ce..0000000000
--- a/.ncrunch/BindingDemo.net461.v3.ncrunchproject
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/BindingDemo.netcoreapp2.0.v3.ncrunchproject b/.ncrunch/BindingDemo.netcoreapp2.0.v3.ncrunchproject
deleted file mode 100644
index 319cd523ce..0000000000
--- a/.ncrunch/BindingDemo.netcoreapp2.0.v3.ncrunchproject
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Native.v3.ncrunchproject b/.ncrunch/ControlCatalog.Web.v3.ncrunchproject
similarity index 100%
rename from .ncrunch/Avalonia.Native.v3.ncrunchproject
rename to .ncrunch/ControlCatalog.Web.v3.ncrunchproject
diff --git a/.ncrunch/ControlCatalog.v3.ncrunchproject b/.ncrunch/ControlCatalog.v3.ncrunchproject
index a4953e14f9..319cd523ce 100644
--- a/.ncrunch/ControlCatalog.v3.ncrunchproject
+++ b/.ncrunch/ControlCatalog.v3.ncrunchproject
@@ -1,6 +1,5 @@
True
- True
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.Skia.Desktop.NetStandard.v3.ncrunchproject b/.ncrunch/ControlSamples.v3.ncrunchproject
similarity index 100%
rename from .ncrunch/Avalonia.Skia.Desktop.NetStandard.v3.ncrunchproject
rename to .ncrunch/ControlSamples.v3.ncrunchproject
diff --git a/.ncrunch/Direct3DInteropSample.v3.ncrunchproject b/.ncrunch/Direct3DInteropSample.v3.ncrunchproject
index 21fcdee3a6..319cd523ce 100644
--- a/.ncrunch/Direct3DInteropSample.v3.ncrunchproject
+++ b/.ncrunch/Direct3DInteropSample.v3.ncrunchproject
@@ -1,9 +1,5 @@
-
- MissingOrIgnoredProjectReference
-
True
- True
\ No newline at end of file
diff --git a/.ncrunch/GtkInteropDemo.v3.ncrunchproject b/.ncrunch/GtkInteropDemo.v3.ncrunchproject
deleted file mode 100644
index 319cd523ce..0000000000
--- a/.ncrunch/GtkInteropDemo.v3.ncrunchproject
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/Avalonia.iOSTestApplication.v3.ncrunchproject b/.ncrunch/MiniMvvm.v3.ncrunchproject
similarity index 100%
rename from .ncrunch/Avalonia.iOSTestApplication.v3.ncrunchproject
rename to .ncrunch/MiniMvvm.v3.ncrunchproject
diff --git a/.ncrunch/PlatformSanityChecks.v3.ncrunchproject b/.ncrunch/PlatformSanityChecks.v3.ncrunchproject
index e9d39b0c74..319cd523ce 100644
--- a/.ncrunch/PlatformSanityChecks.v3.ncrunchproject
+++ b/.ncrunch/PlatformSanityChecks.v3.ncrunchproject
@@ -1,7 +1,5 @@
-
- MissingOrIgnoredProjectReference
-
+ True
\ No newline at end of file
diff --git a/.ncrunch/PlatformSupport.v3.ncrunchproject b/.ncrunch/PlatformSupport.v3.ncrunchproject
deleted file mode 100644
index 95a483b433..0000000000
--- a/.ncrunch/PlatformSupport.v3.ncrunchproject
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/RenderDemo.net461.v3.ncrunchproject b/.ncrunch/RenderDemo.net461.v3.ncrunchproject
deleted file mode 100644
index 319cd523ce..0000000000
--- a/.ncrunch/RenderDemo.net461.v3.ncrunchproject
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/RenderDemo.netcoreapp2.0.v3.ncrunchproject b/.ncrunch/RenderDemo.netcoreapp2.0.v3.ncrunchproject
deleted file mode 100644
index 319cd523ce..0000000000
--- a/.ncrunch/RenderDemo.netcoreapp2.0.v3.ncrunchproject
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/RenderHelpers.v3.ncrunchproject b/.ncrunch/RenderHelpers.v3.ncrunchproject
deleted file mode 100644
index 95a483b433..0000000000
--- a/.ncrunch/RenderHelpers.v3.ncrunchproject
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/.ncrunch/VirtualizationDemo.net461.v3.ncrunchproject b/.ncrunch/VirtualizationDemo.net461.v3.ncrunchproject
deleted file mode 100644
index 319cd523ce..0000000000
--- a/.ncrunch/VirtualizationDemo.net461.v3.ncrunchproject
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- True
-
-
\ No newline at end of file
diff --git a/.ncrunch/VirtualizationDemo.netcoreapp2.0.v3.ncrunchproject b/.ncrunch/VirtualizationDemo.netcoreapp2.0.v3.ncrunchproject
deleted file mode 100644
index 319cd523ce..0000000000
--- a/.ncrunch/VirtualizationDemo.netcoreapp2.0.v3.ncrunchproject
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
- True
-
-
\ No newline at end of file
diff --git a/Avalonia.sln b/Avalonia.sln
index a5707d086f..3c2fc7437b 100644
--- a/Avalonia.sln
+++ b/Avalonia.sln
@@ -60,7 +60,6 @@ EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared", "Shared", "{A689DEF5-D50F-4975-8B72-124C9EB54066}"
ProjectSection(SolutionItems) = preProject
.editorconfig = .editorconfig
- src\Shared\SharedAssemblyInfo.cs = src\Shared\SharedAssemblyInfo.cs
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.ReactiveUI", "src\Avalonia.ReactiveUI\Avalonia.ReactiveUI.csproj", "{6417B24E-49C2-4985-8DB2-3AB9D898EC91}"
@@ -234,7 +233,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Web.Blazor", "src\
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ControlCatalog.Web", "samples\ControlCatalog.Web\ControlCatalog.Web.csproj", "{C08E9894-AA92-426E-BF56-033E262CAD3E}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WindowsInteropTest", "samples\interop\WindowsInteropTest\WindowsInteropTest.csproj", "{26A98DA1-D89D-4A95-8152-349F404DA2E2}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WindowsInteropTest", "samples\interop\WindowsInteropTest\WindowsInteropTest.csproj", "{26A98DA1-D89D-4A95-8152-349F404DA2E2}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ControlSamples", "samples\SampleControls\ControlSamples.csproj", "{A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
@@ -2170,6 +2171,30 @@ Global
{26A98DA1-D89D-4A95-8152-349F404DA2E2}.Release|iPhone.Build.0 = Release|Any CPU
{26A98DA1-D89D-4A95-8152-349F404DA2E2}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{26A98DA1-D89D-4A95-8152-349F404DA2E2}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.AppStore|Any CPU.Build.0 = Debug|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.AppStore|iPhone.Build.0 = Debug|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Release|iPhone.Build.0 = Release|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -2233,6 +2258,7 @@ Global
{25831348-EB2A-483E-9576-E8F6528674A5} = {86A3F706-DC3C-43C6-BE1B-B98F5BAAA268}
{C08E9894-AA92-426E-BF56-033E262CAD3E} = {9B9E3891-2366-4253-A952-D08BCEB71098}
{26A98DA1-D89D-4A95-8152-349F404DA2E2} = {A0CC0258-D18C-4AB3-854F-7101680FC3F9}
+ {A0D0A6A4-5C72-4ADA-9B27-621C7D94F270} = {9B9E3891-2366-4253-A952-D08BCEB71098}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {87366D66-1391-4D90-8999-95A620AD786A}
diff --git a/NuGet.Config b/NuGet.Config
index e430390d39..7a1f28bea7 100644
--- a/NuGet.Config
+++ b/NuGet.Config
@@ -5,6 +5,5 @@
-
diff --git a/build/ApiDiff.props b/build/ApiDiff.props
index a7454b4a4f..b0b1942f60 100644
--- a/build/ApiDiff.props
+++ b/build/ApiDiff.props
@@ -3,6 +3,7 @@
0.10.0
$(PackageId)
Avalonia
+ false
diff --git a/build/HarfBuzzSharp.props b/build/HarfBuzzSharp.props
index 1346a1dafc..1d84d5289a 100644
--- a/build/HarfBuzzSharp.props
+++ b/build/HarfBuzzSharp.props
@@ -1,7 +1,7 @@
-
-
-
+
+
+
diff --git a/build/JetBrains.dotMemoryUnit.props b/build/JetBrains.dotMemoryUnit.props
index 1713dead68..eb4e2b6f15 100644
--- a/build/JetBrains.dotMemoryUnit.props
+++ b/build/JetBrains.dotMemoryUnit.props
@@ -1,5 +1,5 @@
-
+
diff --git a/build/MicroCom.targets b/build/MicroCom.targets
index 1ed388f689..029d7f95f5 100644
--- a/build/MicroCom.targets
+++ b/build/MicroCom.targets
@@ -6,6 +6,7 @@
false
all
true
+ TargetFramework=net6.0
diff --git a/build/NullableEnable.props b/build/NullableEnable.props
new file mode 100644
index 0000000000..cf5f9069d4
--- /dev/null
+++ b/build/NullableEnable.props
@@ -0,0 +1,11 @@
+
+
+
+ enable
+ $(WarningsAsErrors);nullable
+ $(NoWarn);nullable
+
+
diff --git a/build/SkiaSharp.props b/build/SkiaSharp.props
index 4a75a18290..bb370256f9 100644
--- a/build/SkiaSharp.props
+++ b/build/SkiaSharp.props
@@ -1,7 +1,7 @@
-
-
-
+
+
+
diff --git a/native/Avalonia.Native/src/OSX/app.mm b/native/Avalonia.Native/src/OSX/app.mm
index e1972b22f4..79175d9ff1 100644
--- a/native/Avalonia.Native/src/OSX/app.mm
+++ b/native/Avalonia.Native/src/OSX/app.mm
@@ -97,3 +97,30 @@ extern void InitializeAvnApp(IAvnApplicationEvents* events)
id delegate = [[AvnAppDelegate alloc] initWithEvents:events];
[app setDelegate:delegate];
}
+
+HRESULT AvnApplicationCommands::HideApp()
+{
+ START_COM_CALL;
+ [[NSApplication sharedApplication] hide:[NSApp delegate]];
+ return S_OK;
+}
+
+HRESULT AvnApplicationCommands::ShowAll()
+{
+ START_COM_CALL;
+ [[NSApplication sharedApplication] unhideAllApplications:[NSApp delegate]];
+ return S_OK;
+}
+
+HRESULT AvnApplicationCommands::HideOthers()
+{
+ START_COM_CALL;
+ [[NSApplication sharedApplication] hideOtherApplications:[NSApp delegate]];
+ return S_OK;
+}
+
+
+extern IAvnApplicationCommands* CreateApplicationCommands()
+{
+ return new AvnApplicationCommands();
+}
diff --git a/native/Avalonia.Native/src/OSX/common.h b/native/Avalonia.Native/src/OSX/common.h
index 8896fbe88b..126c9aa87b 100644
--- a/native/Avalonia.Native/src/OSX/common.h
+++ b/native/Avalonia.Native/src/OSX/common.h
@@ -25,12 +25,12 @@ extern IAvnMenu* CreateAppMenu(IAvnMenuEvents* events);
extern IAvnTrayIcon* CreateTrayIcon();
extern IAvnMenuItem* CreateAppMenuItem();
extern IAvnMenuItem* CreateAppMenuItemSeparator();
+extern IAvnApplicationCommands* CreateApplicationCommands();
extern IAvnNativeControlHost* CreateNativeControlHost(NSView* parent);
extern void SetAppMenu (NSString* appName, IAvnMenu* appMenu);
+extern void SetServicesMenu (IAvnMenu* menu);
extern IAvnMenu* GetAppMenu ();
extern NSMenuItem* GetAppMenuItem ();
-extern void SetAutoGenerateDefaultAppMenuItems (bool enabled);
-extern bool GetAutoGenerateDefaultAppMenuItems ();
extern void InitializeAvnApp(IAvnApplicationEvents* events);
extern NSApplicationActivationPolicy AvnDesiredActivationPolicy;
@@ -67,4 +67,15 @@ public:
~AvnInsidePotentialDeadlock();
};
+
+class AvnApplicationCommands : public ComSingleObject
+{
+public:
+ FORWARD_IUNKNOWN()
+
+ virtual HRESULT HideApp() override;
+ virtual HRESULT ShowAll() override;
+ virtual HRESULT HideOthers() override;
+};
+
#endif
diff --git a/native/Avalonia.Native/src/OSX/main.mm b/native/Avalonia.Native/src/OSX/main.mm
index eeaaecfdbd..69f2995847 100644
--- a/native/Avalonia.Native/src/OSX/main.mm
+++ b/native/Avalonia.Native/src/OSX/main.mm
@@ -2,7 +2,6 @@
#define COM_GUIDS_MATERIALIZE
#include "common.h"
-static bool s_generateDefaultAppMenuItems = true;
static NSString* s_appTitle = @"Avalonia";
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
@@ -134,16 +133,6 @@ public:
}
}
- virtual HRESULT SetDisableDefaultApplicationMenuItems (bool enabled) override
- {
- START_COM_CALL;
-
- @autoreleasepool
- {
- SetAutoGenerateDefaultAppMenuItems(!enabled);
- return S_OK;
- }
- }
};
/// See "Using POSIX Threads in a Cocoa Application" section here:
@@ -357,6 +346,29 @@ public:
return S_OK;
}
}
+
+ virtual HRESULT SetServicesMenu (IAvnMenu* servicesMenu) override
+ {
+ START_COM_CALL;
+
+ @autoreleasepool
+ {
+ ::SetServicesMenu(servicesMenu);
+ return S_OK;
+ }
+ }
+
+ virtual HRESULT CreateApplicationCommands (IAvnApplicationCommands** ppv) override
+ {
+ START_COM_CALL;
+
+ @autoreleasepool
+ {
+ *ppv = ::CreateApplicationCommands();
+ return S_OK;
+ }
+ }
+
};
extern "C" IAvaloniaNativeFactory* CreateAvaloniaNative()
@@ -410,13 +422,3 @@ CGFloat PrimaryDisplayHeight()
{
return NSMaxY([[[NSScreen screens] firstObject] frame]);
}
-
-void SetAutoGenerateDefaultAppMenuItems (bool enabled)
-{
- s_generateDefaultAppMenuItems = enabled;
-}
-
-bool GetAutoGenerateDefaultAppMenuItems ()
-{
- return s_generateDefaultAppMenuItems;
-}
diff --git a/native/Avalonia.Native/src/OSX/menu.mm b/native/Avalonia.Native/src/OSX/menu.mm
index 38f8c2a7cb..2dbe76bc6d 100644
--- a/native/Avalonia.Native/src/OSX/menu.mm
+++ b/native/Avalonia.Native/src/OSX/menu.mm
@@ -490,53 +490,6 @@ extern void SetAppMenu (NSString* appName, IAvnMenu* menu)
{
[s_appMenuItem setSubmenu:[NSMenu new]];
}
-
- auto appMenu = [s_appMenuItem submenu];
-
- if(GetAutoGenerateDefaultAppMenuItems())
- {
- [appMenu addItem:[NSMenuItem separatorItem]];
-
- // Services item and menu
- auto servicesItem = [[NSMenuItem alloc] init];
- servicesItem.title = @"Services";
- NSMenu *servicesMenu = [[NSMenu alloc] initWithTitle:@"Services"];
- servicesItem.submenu = servicesMenu;
- [NSApplication sharedApplication].servicesMenu = servicesMenu;
- [appMenu addItem:servicesItem];
-
- [appMenu addItem:[NSMenuItem separatorItem]];
-
- // Hide Application
- auto hideItem = [[NSMenuItem alloc] initWithTitle:[@"Hide " stringByAppendingString:appName] action:@selector(hide:) keyEquivalent:@"h"];
-
- [appMenu addItem:hideItem];
-
- // Hide Others
- auto hideAllOthersItem = [[NSMenuItem alloc] initWithTitle:@"Hide Others"
- action:@selector(hideOtherApplications:)
- keyEquivalent:@"h"];
-
- hideAllOthersItem.keyEquivalentModifierMask = NSEventModifierFlagCommand | NSEventModifierFlagOption;
- [appMenu addItem:hideAllOthersItem];
-
- // Show All
- auto showAllItem = [[NSMenuItem alloc] initWithTitle:@"Show All"
- action:@selector(unhideAllApplications:)
- keyEquivalent:@""];
-
- [appMenu addItem:showAllItem];
-
- [appMenu addItem:[NSMenuItem separatorItem]];
-
- // Quit Application
- auto quitItem = [[NSMenuItem alloc] init];
- quitItem.title = [@"Quit " stringByAppendingString:appName];
- quitItem.keyEquivalent = @"q";
- quitItem.target = [AvnWindow class];
- quitItem.action = @selector(closeAll);
- [appMenu addItem:quitItem];
- }
}
else
{
@@ -544,6 +497,12 @@ extern void SetAppMenu (NSString* appName, IAvnMenu* menu)
}
}
+extern void SetServicesMenu (IAvnMenu* menu)
+{
+ auto nativeMenu = dynamic_cast(menu);
+ [NSApplication sharedApplication].servicesMenu = nativeMenu->GetNative();
+}
+
extern IAvnMenu* GetAppMenu ()
{
return s_appMenu;
diff --git a/native/Avalonia.Native/src/OSX/window.mm b/native/Avalonia.Native/src/OSX/window.mm
index 9208848b4c..0b88908252 100644
--- a/native/Avalonia.Native/src/OSX/window.mm
+++ b/native/Avalonia.Native/src/OSX/window.mm
@@ -43,6 +43,7 @@ public:
StandardContainer = [[AutoFitContentView new] initWithContent:View];
Window = [[AvnWindow alloc] initWithParent:this];
+ [Window setContentView: StandardContainer];
lastPositionSet.X = 100;
lastPositionSet.Y = 100;
@@ -124,8 +125,6 @@ public:
SetPosition(lastPositionSet);
UpdateStyle();
- [Window setContentView: StandardContainer];
-
[Window setTitle:_lastTitle];
if(ShouldTakeFocusOnShow() && activate)
@@ -175,7 +174,7 @@ public:
{
if(Window != nullptr)
{
- [Window makeKeyWindow];
+ [Window makeKeyAndOrderFront:nil];
[NSApp activateIgnoringOtherApps:YES];
}
}
@@ -328,8 +327,8 @@ public:
BaseEvents->Resized(AvnSize{x,y}, reason);
}
- [StandardContainer setFrameSize:NSSize{x,y}];
- [Window setContentSize:NSSize{x, y}];
+ [Window setContentSize:NSSize{x,y}];
+ [Window invalidateShadow];
}
@finally
{
diff --git a/nukebuild/Build.cs b/nukebuild/Build.cs
index 6f4afd9191..f0b894b596 100644
--- a/nukebuild/Build.cs
+++ b/nukebuild/Build.cs
@@ -253,10 +253,14 @@ partial class Build : NukeBuild
.DependsOn(Compile)
.Executes(() =>
{
- var testAssembly = "tests\\Avalonia.LeakTests\\bin\\Release\\net461\\Avalonia.LeakTests.dll";
- DotMemoryUnit(
- $"{XunitPath.DoubleQuoteIfNeeded()} --propagate-exit-code -- {testAssembly}",
- timeout: 120_000);
+ void DoMemoryTest()
+ {
+ var testAssembly = "tests\\Avalonia.LeakTests\\bin\\Release\\net461\\Avalonia.LeakTests.dll";
+ DotMemoryUnit(
+ $"{XunitPath.DoubleQuoteIfNeeded()} --propagate-exit-code -- {testAssembly}",
+ timeout: 120_000);
+ }
+ ControlFlow.ExecuteWithRetry(DoMemoryTest, waitInSeconds: 3);
});
Target ZipFiles => _ => _
diff --git a/packages/Avalonia/Avalonia.csproj b/packages/Avalonia/Avalonia.csproj
index 44e2290a0d..4b28527465 100644
--- a/packages/Avalonia/Avalonia.csproj
+++ b/packages/Avalonia/Avalonia.csproj
@@ -1,6 +1,6 @@
- netstandard2.0;net461;netcoreapp2.0
+ net6.0;netstandard2.0;net461;netcoreapp2.0
Avalonia
diff --git a/readme.md b/readme.md
index a8a6399f2f..b38552a010 100644
--- a/readme.md
+++ b/readme.md
@@ -75,6 +75,12 @@ For more information see the [.NET Foundation Code of Conduct](https://dotnetfou
Avalonia is licenced under the [MIT licence](licence.md).
+## Support Avalonia
+
+**BTC**: bc1q05wx78qemgy9x6ytl5ljk2xrt00yqargyjm8gx
+
+This will be shared with the community and awarded for significant contributions.
+
### Backers
Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/Avalonia#backer)]
diff --git a/samples/ControlCatalog.Android/ControlCatalog.Android.csproj b/samples/ControlCatalog.Android/ControlCatalog.Android.csproj
index 1a68c4d732..617b6b6ab0 100644
--- a/samples/ControlCatalog.Android/ControlCatalog.Android.csproj
+++ b/samples/ControlCatalog.Android/ControlCatalog.Android.csproj
@@ -32,7 +32,7 @@
True
False
False
- armeabi-v7a;x86
+ armeabi-v7a;x86;x86_64
Xamarin
False
False
@@ -51,7 +51,7 @@
True
False
False
- armeabi-v7a,x86
+ armeabi-v7a,x86;x86_64
Xamarin
False
False
@@ -125,6 +125,10 @@
{42472427-4774-4c81-8aff-9f27b8e31721}
Avalonia.Layout
+
+ {c42d2fc1-a531-4ed4-84b9-89aec7c962fc}
+ Avalonia.Themes.Fluent
+
{eb582467-6abb-43a1-b052-e981ba910e3a}
Avalonia.Visuals
diff --git a/samples/ControlCatalog.Android/Resources/Resource.Designer.cs b/samples/ControlCatalog.Android/Resources/Resource.Designer.cs
index b1ca548e2c..dccc3f7159 100644
--- a/samples/ControlCatalog.Android/Resources/Resource.Designer.cs
+++ b/samples/ControlCatalog.Android/Resources/Resource.Designer.cs
@@ -14,7 +14,7 @@ namespace ControlCatalog.Android
{
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "12.1.99.62")]
public partial class Resource
{
diff --git a/samples/ControlCatalog.Web/ControlCatalog.Web.csproj b/samples/ControlCatalog.Web/ControlCatalog.Web.csproj
index 96936f3000..d463dfa84a 100644
--- a/samples/ControlCatalog.Web/ControlCatalog.Web.csproj
+++ b/samples/ControlCatalog.Web/ControlCatalog.Web.csproj
@@ -29,6 +29,7 @@
+
diff --git a/samples/ControlCatalog/App.xaml b/samples/ControlCatalog/App.xaml
index 6e57686e00..227b31bf20 100644
--- a/samples/ControlCatalog/App.xaml
+++ b/samples/ControlCatalog/App.xaml
@@ -5,6 +5,9 @@
x:CompileBindings="True"
x:Class="ControlCatalog.App">
+
-
+
diff --git a/samples/ControlCatalog/App.xaml.cs b/samples/ControlCatalog/App.xaml.cs
index 36b6fc2dcd..816356bee9 100644
--- a/samples/ControlCatalog/App.xaml.cs
+++ b/samples/ControlCatalog/App.xaml.cs
@@ -5,6 +5,7 @@ using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
using Avalonia.Markup.Xaml.Styling;
using Avalonia.Styling;
+using Avalonia.Themes.Fluent;
using ControlCatalog.ViewModels;
namespace ControlCatalog
@@ -16,33 +17,17 @@ namespace ControlCatalog
DataContext = new ApplicationViewModel();
}
- private static readonly StyleInclude DataGridFluent = new StyleInclude(new Uri("avares://ControlCatalog/Styles"))
+ public static readonly StyleInclude DataGridFluent = new StyleInclude(new Uri("avares://ControlCatalog/Styles"))
{
Source = new Uri("avares://Avalonia.Controls.DataGrid/Themes/Fluent.xaml")
};
- private static readonly StyleInclude DataGridDefault = new StyleInclude(new Uri("avares://ControlCatalog/Styles"))
+ public static readonly StyleInclude DataGridDefault = new StyleInclude(new Uri("avares://ControlCatalog/Styles"))
{
Source = new Uri("avares://Avalonia.Controls.DataGrid/Themes/Default.xaml")
};
- public static Styles FluentDark = new Styles
- {
- new StyleInclude(new Uri("avares://ControlCatalog/Styles"))
- {
- Source = new Uri("avares://Avalonia.Themes.Fluent/FluentDark.xaml")
- },
- DataGridFluent
- };
-
- public static Styles FluentLight = new Styles
- {
- new StyleInclude(new Uri("avares://ControlCatalog/Styles"))
- {
- Source = new Uri("avares://Avalonia.Themes.Fluent/FluentLight.xaml")
- },
- DataGridFluent
- };
+ public static FluentTheme Fluent = new FluentTheme(new Uri("avares://ControlCatalog/Styles"));
public static Styles DefaultLight = new Styles
{
@@ -65,8 +50,7 @@ namespace ControlCatalog
new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
{
Source = new Uri("avares://Avalonia.Themes.Default/DefaultTheme.xaml")
- },
- DataGridDefault
+ }
};
public static Styles DefaultDark = new Styles
@@ -90,14 +74,13 @@ namespace ControlCatalog
new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
{
Source = new Uri("avares://Avalonia.Themes.Default/DefaultTheme.xaml")
- },
- DataGridDefault
+ }
};
public override void Initialize()
{
- Styles.Insert(0, FluentLight);
-
+ Styles.Insert(0, Fluent);
+ Styles.Insert(1, DataGridFluent);
AvaloniaXamlLoader.Load(this);
}
@@ -111,6 +94,11 @@ namespace ControlCatalog
singleViewLifetime.MainView = new MainView();
base.OnFrameworkInitializationCompleted();
+
+ this.AttachDevTools(new Avalonia.Diagnostics.DevToolsOptions()
+ {
+ StartupScreenIndex = 1,
+ });
}
}
}
diff --git a/samples/ControlCatalog/ControlCatalog.csproj b/samples/ControlCatalog/ControlCatalog.csproj
index 53ad213d92..7864459e77 100644
--- a/samples/ControlCatalog/ControlCatalog.csproj
+++ b/samples/ControlCatalog/ControlCatalog.csproj
@@ -26,6 +26,7 @@
+
diff --git a/samples/ControlCatalog/DecoratedWindow.xaml.cs b/samples/ControlCatalog/DecoratedWindow.xaml.cs
index bdf5b8fbee..a1383b9107 100644
--- a/samples/ControlCatalog/DecoratedWindow.xaml.cs
+++ b/samples/ControlCatalog/DecoratedWindow.xaml.cs
@@ -11,7 +11,6 @@ namespace ControlCatalog
public DecoratedWindow()
{
this.InitializeComponent();
- this.AttachDevTools();
}
void SetupSide(string name, StandardCursorType cursor, WindowEdge edge)
diff --git a/samples/ControlCatalog/MainView.xaml b/samples/ControlCatalog/MainView.xaml
index f61b59e6cd..3d869bb723 100644
--- a/samples/ControlCatalog/MainView.xaml
+++ b/samples/ControlCatalog/MainView.xaml
@@ -1,108 +1,195 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
+
+
-
-
+
+
+
+
+
-
+
-
-
-
+
+
+
+
+
+
+
+
-
+ ScrollViewer.HorizontalScrollBarVisibility="Disabled"
+ ScrollViewer.VerticalScrollBarVisibility="Disabled">
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- No Decorations
- Border Only
- Full Decorations
-
-
- Fluent - Light
- Fluent - Dark
- Simple - Light
- Simple - Dark
-
-
- None
- Transparent
- Blur
- AcrylicBlur
- Mica
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ None
+ BorderOnly
+ Full
+
+
+
+
+ FluentLight
+ FluentDark
+ DefaultLight
+ DefaultDark
+
+
+
+
+ None
+ Transparent
+ Blur
+ AcrylicBlur
+ Mica
+
+
+
+
+
+
+
diff --git a/samples/ControlCatalog/MainView.xaml.cs b/samples/ControlCatalog/MainView.xaml.cs
index c84f2f06b6..0579355831 100644
--- a/samples/ControlCatalog/MainView.xaml.cs
+++ b/samples/ControlCatalog/MainView.xaml.cs
@@ -3,10 +3,11 @@ using System.Collections;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
-using Avalonia.Markup.Xaml.MarkupExtensions;
-using Avalonia.Markup.Xaml.Styling;
-using Avalonia.Markup.Xaml.XamlIl;
+using Avalonia.Media;
+using Avalonia.Media.Immutable;
using Avalonia.Platform;
+using Avalonia.Themes.Fluent;
+using ControlCatalog.Models;
using ControlCatalog.Pages;
namespace ControlCatalog
@@ -16,9 +17,12 @@ namespace ControlCatalog
public MainView()
{
AvaloniaXamlLoader.Load(this);
+
+ var sideBar = this.FindControl("Sidebar");
+
if (AvaloniaLocator.Current.GetService().GetRuntimeInfo().IsDesktop)
{
- IList tabItems = ((IList)this.FindControl("Sidebar").Items);
+ IList tabItems = ((IList)sideBar.Items);
tabItems.Add(new TabItem()
{
Header = "Dialogs",
@@ -35,28 +39,64 @@ namespace ControlCatalog
var themes = this.Find("Themes");
themes.SelectionChanged += (sender, e) =>
{
- switch (themes.SelectedIndex)
+ if (themes.SelectedItem is CatalogTheme theme)
{
- case 0:
- Application.Current.Styles[0] = App.FluentLight;
- break;
- case 1:
- Application.Current.Styles[0] = App.FluentDark;
- break;
- case 2:
+ var themeStyle = Application.Current.Styles[0];
+ if (theme == CatalogTheme.FluentLight)
+ {
+ if (App.Fluent.Mode != FluentThemeMode.Light)
+ {
+ App.Fluent.Mode = FluentThemeMode.Light;
+ }
+ Application.Current.Styles[0] = App.Fluent;
+ Application.Current.Styles[1] = App.DataGridFluent;
+ }
+ else if (theme == CatalogTheme.FluentDark)
+ {
+
+ if (App.Fluent.Mode != FluentThemeMode.Dark)
+ {
+ App.Fluent.Mode = FluentThemeMode.Dark;
+ }
+ Application.Current.Styles[0] = App.Fluent;
+ Application.Current.Styles[1] = App.DataGridFluent;
+ }
+ else if (theme == CatalogTheme.DefaultLight)
+ {
Application.Current.Styles[0] = App.DefaultLight;
- break;
- case 3:
+ Application.Current.Styles[1] = App.DataGridDefault;
+ }
+ else if (theme == CatalogTheme.DefaultDark)
+ {
Application.Current.Styles[0] = App.DefaultDark;
- break;
+ Application.Current.Styles[1] = App.DataGridDefault;
+ }
}
- };
+ };
var decorations = this.Find("Decorations");
decorations.SelectionChanged += (sender, e) =>
{
- if (VisualRoot is Window window)
- window.SystemDecorations = (SystemDecorations)decorations.SelectedIndex;
+ if (VisualRoot is Window window
+ && decorations.SelectedItem is SystemDecorations systemDecorations)
+ {
+ window.SystemDecorations = systemDecorations;
+ }
+ };
+
+ var transparencyLevels = this.Find("TransparencyLevels");
+ IDisposable backgroundSetter = null, paneBackgroundSetter = null;
+ transparencyLevels.SelectionChanged += (sender, e) =>
+ {
+ backgroundSetter?.Dispose();
+ paneBackgroundSetter?.Dispose();
+ if (transparencyLevels.SelectedItem is WindowTransparencyLevel selected
+ && selected != WindowTransparencyLevel.None)
+ {
+ var semiTransparentBrush = new ImmutableSolidColorBrush(Colors.Gray, 0.5);
+ backgroundSetter = sideBar.SetValue(BackgroundProperty, semiTransparentBrush, Avalonia.Data.BindingPriority.Style);
+ paneBackgroundSetter = sideBar.SetValue(SplitView.PaneBackgroundProperty, semiTransparentBrush, Avalonia.Data.BindingPriority.Style);
+ }
};
}
diff --git a/samples/ControlCatalog/MainWindow.xaml b/samples/ControlCatalog/MainWindow.xaml
index 375345f64e..1e4bf2de38 100644
--- a/samples/ControlCatalog/MainWindow.xaml
+++ b/samples/ControlCatalog/MainWindow.xaml
@@ -61,17 +61,7 @@
-
-
-
-
+
diff --git a/samples/ControlCatalog/MainWindow.xaml.cs b/samples/ControlCatalog/MainWindow.xaml.cs
index a9900471c5..20591103b7 100644
--- a/samples/ControlCatalog/MainWindow.xaml.cs
+++ b/samples/ControlCatalog/MainWindow.xaml.cs
@@ -17,10 +17,7 @@ namespace ControlCatalog
public MainWindow()
{
this.InitializeComponent();
- this.AttachDevTools(new Avalonia.Diagnostics.DevToolsOptions()
- {
- StartupScreenIndex = 1,
- });
+
//Renderer.DrawFps = true;
//Renderer.DrawDirtyRects = Renderer.DrawFps = true;
@@ -33,9 +30,6 @@ namespace ControlCatalog
DataContext = new MainWindowViewModel(_notificationArea);
_recentMenu = ((NativeMenu.GetMenu(this).Items[0] as NativeMenuItem).Menu.Items[2] as NativeMenuItem).Menu;
- var mainMenu = this.FindControl
diff --git a/samples/ControlCatalog/Pages/ExpanderPage.xaml b/samples/ControlCatalog/Pages/ExpanderPage.xaml
index 605eff4fce..cef473af04 100644
--- a/samples/ControlCatalog/Pages/ExpanderPage.xaml
+++ b/samples/ControlCatalog/Pages/ExpanderPage.xaml
@@ -2,7 +2,6 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ControlCatalog.Pages.ExpanderPage">
- Expander
Expands to show nested content
- Image
Displays an image
diff --git a/samples/ControlCatalog/Pages/ItemsRepeaterPage.xaml b/samples/ControlCatalog/Pages/ItemsRepeaterPage.xaml
index 4d0bd663df..8305d72d1f 100644
--- a/samples/ControlCatalog/Pages/ItemsRepeaterPage.xaml
+++ b/samples/ControlCatalog/Pages/ItemsRepeaterPage.xaml
@@ -43,7 +43,6 @@
- ItemsRepeater
A data-driven collection control that incorporates a flexible layout system, custom views, and virtualization.
diff --git a/samples/ControlCatalog/Pages/ListBoxPage.xaml b/samples/ControlCatalog/Pages/ListBoxPage.xaml
index b36629fb2a..41658329df 100644
--- a/samples/ControlCatalog/Pages/ListBoxPage.xaml
+++ b/samples/ControlCatalog/Pages/ListBoxPage.xaml
@@ -13,7 +13,6 @@
- ListBox
Hosts a collection of ListBoxItem.
Each 5th item is highlighted with nth-child(5n+3) and nth-last-child(5n+4) rules.
diff --git a/samples/ControlCatalog/Pages/MenuPage.xaml b/samples/ControlCatalog/Pages/MenuPage.xaml
index 2c09cb9b4d..0e5b49914f 100644
--- a/samples/ControlCatalog/Pages/MenuPage.xaml
+++ b/samples/ControlCatalog/Pages/MenuPage.xaml
@@ -2,16 +2,12 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ControlCatalog.Pages.MenuPage">
- Menu
Exported menu fallback
(Should be only visible on platforms without desktop-global menu bar)
A window menu
-
+
Defined in XAML
-
+
diff --git a/samples/ControlCatalog/Pages/NotificationsPage.xaml b/samples/ControlCatalog/Pages/NotificationsPage.xaml
index 94e2314dc7..d48b338fe8 100644
--- a/samples/ControlCatalog/Pages/NotificationsPage.xaml
+++ b/samples/ControlCatalog/Pages/NotificationsPage.xaml
@@ -2,7 +2,6 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ControlCatalog.Pages.NotificationsPage">
- Notifications
diff --git a/samples/ControlCatalog/Pages/NumericUpDownPage.xaml b/samples/ControlCatalog/Pages/NumericUpDownPage.xaml
index 2f422e2d64..9ddc6b6228 100644
--- a/samples/ControlCatalog/Pages/NumericUpDownPage.xaml
+++ b/samples/ControlCatalog/Pages/NumericUpDownPage.xaml
@@ -4,12 +4,11 @@
x:Class="ControlCatalog.Pages.NumericUpDownPage">
- Numeric up-down control
Numeric up-down control provides a TextBox with button spinners that allow incrementing and decrementing numeric values by using the spinner buttons, keyboard up/down arrows, or mouse wheel.
Features:
-
-
+
+
ShowButtonSpinner:
@@ -23,7 +22,7 @@
-
+
FormatString:
@@ -52,7 +51,7 @@
Text:
-
+
Minimum:
@@ -71,7 +70,7 @@
-
+
diff --git a/samples/ControlCatalog/Pages/PointersPage.cs b/samples/ControlCatalog/Pages/PointersPage.cs
index 60e946dfbe..fddc503a90 100644
--- a/samples/ControlCatalog/Pages/PointersPage.cs
+++ b/samples/ControlCatalog/Pages/PointersPage.cs
@@ -99,10 +99,9 @@ namespace ControlCatalog.Pages
foreach (var pt in _pointers.Values)
{
var brush = new ImmutableSolidColorBrush(pt.Color);
- context.DrawGeometry(brush, null, new EllipseGeometry(new Rect(pt.Point.X - 75, pt.Point.Y - 75,
- 150, 150)));
+
+ context.DrawEllipse(brush, null, pt.Point, 75, 75);
}
-
}
}
}
diff --git a/samples/ControlCatalog/Pages/ProgressBarPage.xaml b/samples/ControlCatalog/Pages/ProgressBarPage.xaml
index da8ef6cf07..db7d7d3280 100644
--- a/samples/ControlCatalog/Pages/ProgressBarPage.xaml
+++ b/samples/ControlCatalog/Pages/ProgressBarPage.xaml
@@ -1,6 +1,5 @@
- ProgressBar
A progress bar control
diff --git a/samples/ControlCatalog/Pages/RadioButtonPage.xaml b/samples/ControlCatalog/Pages/RadioButtonPage.xaml
index 408f9c2411..8623d81b3f 100644
--- a/samples/ControlCatalog/Pages/RadioButtonPage.xaml
+++ b/samples/ControlCatalog/Pages/RadioButtonPage.xaml
@@ -2,7 +2,6 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ControlCatalog.Pages.RadioButtonPage">
- RadioButton
Allows the selection of a single option of many
+
@@ -57,4 +59,5 @@
+
diff --git a/samples/ControlCatalog/Pages/ScrollViewerPage.xaml b/samples/ControlCatalog/Pages/ScrollViewerPage.xaml
index bbefcab9ca..1b3771ccb5 100644
--- a/samples/ControlCatalog/Pages/ScrollViewerPage.xaml
+++ b/samples/ControlCatalog/Pages/ScrollViewerPage.xaml
@@ -2,7 +2,6 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="ControlCatalog.Pages.ScrollViewerPage">
- ScrollViewer
Allows for horizontal and vertical content scrolling.
diff --git a/samples/ControlCatalog/Pages/SliderPage.xaml b/samples/ControlCatalog/Pages/SliderPage.xaml
index b4901ec780..b2375922c2 100644
--- a/samples/ControlCatalog/Pages/SliderPage.xaml
+++ b/samples/ControlCatalog/Pages/SliderPage.xaml
@@ -3,7 +3,6 @@
xmlns:sys="clr-namespace:System;assembly=netstandard"
x:Class="ControlCatalog.Pages.SliderPage">
- Slider
A control that lets the user select from a range of values by moving a Thumb control along a Track.
diff --git a/samples/ControlCatalog/Pages/TabControlPage.xaml b/samples/ControlCatalog/Pages/TabControlPage.xaml
index e700146a5b..cba6fcd0ad 100644
--- a/samples/ControlCatalog/Pages/TabControlPage.xaml
+++ b/samples/ControlCatalog/Pages/TabControlPage.xaml
@@ -3,12 +3,6 @@
x:Class="ControlCatalog.Pages.TabControlPage"
xmlns="https://github.com/avaloniaui">
-
-
- TabStrip
A control which displays a selectable strip of tabs
diff --git a/samples/ControlCatalog/Pages/TextBlockPage.xaml b/samples/ControlCatalog/Pages/TextBlockPage.xaml
index d4f72f161a..9998a20d42 100644
--- a/samples/ControlCatalog/Pages/TextBlockPage.xaml
+++ b/samples/ControlCatalog/Pages/TextBlockPage.xaml
@@ -1,102 +1,99 @@
-
+
- TextBlock
A control that can display text
-
-
+
+
-
+
-
-
-
+
+
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
@@ -107,19 +104,19 @@
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
+
diff --git a/samples/ControlCatalog/Pages/TextBoxPage.xaml b/samples/ControlCatalog/Pages/TextBoxPage.xaml
index 233b309caf..f15ac8ffd6 100644
--- a/samples/ControlCatalog/Pages/TextBoxPage.xaml
+++ b/samples/ControlCatalog/Pages/TextBoxPage.xaml
@@ -3,14 +3,11 @@
x:Class="ControlCatalog.Pages.TextBoxPage"
xmlns:sys="clr-namespace:System;assembly=netstandard">
-
-
-
+
+
@@ -18,10 +15,10 @@
Custom context flyout
-
+
-
+
-
+
+
+
+
-
+
@@ -65,14 +74,14 @@
-
+
-
+
diff --git a/samples/ControlCatalog/Pages/ToggleSwitchPage.xaml b/samples/ControlCatalog/Pages/ToggleSwitchPage.xaml
index 7a65275a8e..4db755b6fc 100644
--- a/samples/ControlCatalog/Pages/ToggleSwitchPage.xaml
+++ b/samples/ControlCatalog/Pages/ToggleSwitchPage.xaml
@@ -1,7 +1,8 @@
-
+
diff --git a/samples/ControlCatalog/Pages/ToolTipPage.xaml b/samples/ControlCatalog/Pages/ToolTipPage.xaml
index de23c7a169..013c176bca 100644
--- a/samples/ControlCatalog/Pages/ToolTipPage.xaml
+++ b/samples/ControlCatalog/Pages/ToolTipPage.xaml
@@ -3,7 +3,6 @@
x:Class="ControlCatalog.Pages.ToolTipPage">
- ToolTip
A control which pops up a hint when a control is hovered
- TreeView
Displays a hierachical tree of data.
- Viewbox
A control used to scale single child.
diff --git a/samples/ControlCatalog/SideBar.xaml b/samples/ControlCatalog/SideBar.xaml
deleted file mode 100644
index 2b5215a3fe..0000000000
--- a/samples/ControlCatalog/SideBar.xaml
+++ /dev/null
@@ -1,84 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/samples/RenderDemo/App.xaml b/samples/RenderDemo/App.xaml
index 7cdcea2e1d..66d97a6444 100644
--- a/samples/RenderDemo/App.xaml
+++ b/samples/RenderDemo/App.xaml
@@ -1,9 +1,8 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/samples/RenderDemo/MainWindow.xaml b/samples/RenderDemo/MainWindow.xaml
index f37df56b73..a4c6299278 100644
--- a/samples/RenderDemo/MainWindow.xaml
+++ b/samples/RenderDemo/MainWindow.xaml
@@ -1,68 +1,67 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/RenderDemo/RenderDemo.csproj b/samples/RenderDemo/RenderDemo.csproj
index eed6fa9e89..54d5ca4b3b 100644
--- a/samples/RenderDemo/RenderDemo.csproj
+++ b/samples/RenderDemo/RenderDemo.csproj
@@ -10,6 +10,7 @@
+
diff --git a/samples/RenderDemo/SideBar.xaml b/samples/RenderDemo/SideBar.xaml
deleted file mode 100644
index b82a7b0514..0000000000
--- a/samples/RenderDemo/SideBar.xaml
+++ /dev/null
@@ -1,67 +0,0 @@
-
-
-
-
-
-
-
-
-
-
diff --git a/samples/SampleControls/ControlSamples.csproj b/samples/SampleControls/ControlSamples.csproj
new file mode 100644
index 0000000000..6eaf11a0fc
--- /dev/null
+++ b/samples/SampleControls/ControlSamples.csproj
@@ -0,0 +1,23 @@
+
+
+
+ netstandard2.0
+ enable
+
+
+
+
+ %(Filename)
+
+
+ Designer
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/SampleControls/HamburgerMenu/HamburgerMenu.cs b/samples/SampleControls/HamburgerMenu/HamburgerMenu.cs
new file mode 100644
index 0000000000..bbfd3d87ca
--- /dev/null
+++ b/samples/SampleControls/HamburgerMenu/HamburgerMenu.cs
@@ -0,0 +1,77 @@
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Controls.Primitives;
+using Avalonia.Media;
+
+namespace ControlSamples
+{
+ public class HamburgerMenu : TabControl
+ {
+ private SplitView? _splitView;
+
+ public static readonly StyledProperty PaneBackgroundProperty =
+ SplitView.PaneBackgroundProperty.AddOwner();
+
+ public IBrush? PaneBackground
+ {
+ get => GetValue(PaneBackgroundProperty);
+ set => SetValue(PaneBackgroundProperty, value);
+ }
+
+ public static readonly StyledProperty ContentBackgroundProperty =
+ AvaloniaProperty.Register(nameof(ContentBackground));
+
+ public IBrush? ContentBackground
+ {
+ get => GetValue(ContentBackgroundProperty);
+ set => SetValue(ContentBackgroundProperty, value);
+ }
+
+ public static readonly StyledProperty ExpandedModeThresholdWidthProperty =
+ AvaloniaProperty.Register(nameof(ExpandedModeThresholdWidth), 1008);
+
+ public int ExpandedModeThresholdWidth
+ {
+ get => GetValue(ExpandedModeThresholdWidthProperty);
+ set => SetValue(ExpandedModeThresholdWidthProperty, value);
+ }
+
+ protected override void OnApplyTemplate(TemplateAppliedEventArgs e)
+ {
+ base.OnApplyTemplate(e);
+
+ _splitView = e.NameScope.Find("PART_NavigationPane");
+ }
+
+ protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change)
+ {
+ base.OnPropertyChanged(change);
+
+ if (change.Property == BoundsProperty && _splitView is not null)
+ {
+ var oldBounds = change.OldValue.GetValueOrDefault();
+ var newBounds = change.NewValue.GetValueOrDefault();
+ EnsureSplitViewMode(oldBounds, newBounds);
+ }
+ }
+
+ private void EnsureSplitViewMode(Rect oldBounds, Rect newBounds)
+ {
+ if (_splitView is not null)
+ {
+ var threshold = ExpandedModeThresholdWidth;
+
+ if (newBounds.Width >= threshold && oldBounds.Width < threshold)
+ {
+ _splitView.DisplayMode = SplitViewDisplayMode.Inline;
+ _splitView.IsPaneOpen = true;
+ }
+ else if (newBounds.Width < threshold && oldBounds.Width >= threshold)
+ {
+ _splitView.DisplayMode = SplitViewDisplayMode.Overlay;
+ _splitView.IsPaneOpen = false;
+ }
+ }
+ }
+ }
+}
diff --git a/samples/SampleControls/HamburgerMenu/HamburgerMenu.xaml b/samples/SampleControls/HamburgerMenu/HamburgerMenu.xaml
new file mode 100644
index 0000000000..1aa7f8ea04
--- /dev/null
+++ b/samples/SampleControls/HamburgerMenu/HamburgerMenu.xaml
@@ -0,0 +1,242 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 40
+ 200
+ 36
+ 36
+ 32
+ 12,0,0,0
+ 52,0,0,0
+ 212,0,0,0
+ 1 1 1 1 #2000, 0 0 1 1 #2fff
+ 0 0 1 1 #2000
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Android/Avalonia.Android/AndroidPlatform.cs b/src/Android/Avalonia.Android/AndroidPlatform.cs
index 5e11d8eab2..57f22e7a05 100644
--- a/src/Android/Avalonia.Android/AndroidPlatform.cs
+++ b/src/Android/Avalonia.Android/AndroidPlatform.cs
@@ -43,11 +43,12 @@ namespace Avalonia.Android
AvaloniaLocator.CurrentMutable
.Bind().ToTransient()
.Bind().ToTransient()
+ .Bind().ToConstant(new WindowingPlatformStub())
.Bind().ToSingleton()
.Bind().ToConstant(Instance)
.Bind().ToConstant(new AndroidThreadingInterface())
.Bind().ToTransient()
- .Bind().ToSingleton()
+ .Bind().ToSingleton()
.Bind().ToConstant(new ChoreographerTimer())
.Bind().ToConstant(new RenderLoop())
.Bind().ToSingleton()
diff --git a/src/Android/Avalonia.Android/Stubs.cs b/src/Android/Avalonia.Android/Stubs.cs
new file mode 100644
index 0000000000..f36c01dbc8
--- /dev/null
+++ b/src/Android/Avalonia.Android/Stubs.cs
@@ -0,0 +1,56 @@
+using System;
+using System.IO;
+using Avalonia.Platform;
+
+namespace Avalonia.Android
+{
+ class WindowingPlatformStub : IWindowingPlatform
+ {
+ public IWindowImpl CreateWindow() => throw new NotSupportedException();
+
+ public IWindowImpl CreateEmbeddableWindow() => throw new NotSupportedException();
+
+ public ITrayIconImpl CreateTrayIcon() => null;
+ }
+
+ class PlatformIconLoaderStub : IPlatformIconLoader
+ {
+ public IWindowIconImpl LoadIcon(IBitmapImpl bitmap)
+ {
+ using (var stream = new MemoryStream())
+ {
+ bitmap.Save(stream);
+ return LoadIcon(stream);
+ }
+ }
+
+ public IWindowIconImpl LoadIcon(Stream stream)
+ {
+ var ms = new MemoryStream();
+ stream.CopyTo(ms);
+ return new IconStub(ms);
+ }
+
+ public IWindowIconImpl LoadIcon(string fileName)
+ {
+ using (var file = File.Open(fileName, FileMode.Open))
+ return LoadIcon(file);
+ }
+ }
+
+ public class IconStub : IWindowIconImpl
+ {
+ private readonly MemoryStream _ms;
+
+ public IconStub(MemoryStream stream)
+ {
+ _ms = stream;
+ }
+
+ public void Save(Stream outputStream)
+ {
+ _ms.Position = 0;
+ _ms.CopyTo(outputStream);
+ }
+ }
+}
diff --git a/src/Android/Avalonia.AndroidTestApplication/Resources/Resource.Designer.cs b/src/Android/Avalonia.AndroidTestApplication/Resources/Resource.Designer.cs
index 83db67fcee..87fd47df25 100644
--- a/src/Android/Avalonia.AndroidTestApplication/Resources/Resource.Designer.cs
+++ b/src/Android/Avalonia.AndroidTestApplication/Resources/Resource.Designer.cs
@@ -14,7 +14,7 @@ namespace Avalonia.AndroidTestApplication
{
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "12.1.99.62")]
public partial class Resource
{
diff --git a/src/Avalonia.Animation/Avalonia.Animation.csproj b/src/Avalonia.Animation/Avalonia.Animation.csproj
index ee91acf45e..465b922b72 100644
--- a/src/Avalonia.Animation/Avalonia.Animation.csproj
+++ b/src/Avalonia.Animation/Avalonia.Animation.csproj
@@ -1,6 +1,6 @@
- netstandard2.0
+ net6.0;netstandard2.0
diff --git a/src/Avalonia.Base/AttachedProperty.cs b/src/Avalonia.Base/AttachedProperty.cs
index 352104897a..12c569c452 100644
--- a/src/Avalonia.Base/AttachedProperty.cs
+++ b/src/Avalonia.Base/AttachedProperty.cs
@@ -1,7 +1,5 @@
using System;
-#nullable enable
-
namespace Avalonia
{
///
diff --git a/src/Avalonia.Base/Avalonia.Base.csproj b/src/Avalonia.Base/Avalonia.Base.csproj
index 0470dbfe89..376075df2a 100644
--- a/src/Avalonia.Base/Avalonia.Base.csproj
+++ b/src/Avalonia.Base/Avalonia.Base.csproj
@@ -1,6 +1,6 @@
- netstandard2.0
+ net6.0;netstandard2.0
Avalonia.Base
Avalonia
True
@@ -11,4 +11,5 @@
+
diff --git a/src/Avalonia.Base/AvaloniaInternalException.cs b/src/Avalonia.Base/AvaloniaInternalException.cs
index 60e3040e01..a536073174 100644
--- a/src/Avalonia.Base/AvaloniaInternalException.cs
+++ b/src/Avalonia.Base/AvaloniaInternalException.cs
@@ -1,7 +1,5 @@
using System;
-#nullable enable
-
namespace Avalonia
{
///
diff --git a/src/Avalonia.Base/AvaloniaLocator.cs b/src/Avalonia.Base/AvaloniaLocator.cs
index 3163d15c1b..8ec245507b 100644
--- a/src/Avalonia.Base/AvaloniaLocator.cs
+++ b/src/Avalonia.Base/AvaloniaLocator.cs
@@ -7,10 +7,10 @@ namespace Avalonia
{
public class AvaloniaLocator : IAvaloniaDependencyResolver
{
- private readonly IAvaloniaDependencyResolver _parentScope;
+ private readonly IAvaloniaDependencyResolver? _parentScope;
public static IAvaloniaDependencyResolver Current { get; set; }
public static AvaloniaLocator CurrentMutable { get; set; }
- private readonly Dictionary> _registry = new Dictionary>();
+ private readonly Dictionary> _registry = new Dictionary>();
static AvaloniaLocator()
{
@@ -27,10 +27,9 @@ namespace Avalonia
_parentScope = parentScope;
}
- public object GetService(Type t)
+ public object? GetService(Type t)
{
- Func