diff --git a/.editorconfig b/.editorconfig index 8c6ad717e4..bfeab8c84f 100644 --- a/.editorconfig +++ b/.editorconfig @@ -138,33 +138,25 @@ space_within_single_line_array_initializer_braces = true #Net Analyzer dotnet_analyzer_diagnostic.category-Performance.severity = none #error - Uncomment when all violations are fixed. -# CS0649: Field 'field' is never assigned to, and will always have its default value 'value' -dotnet_diagnostic.CS0649.severity = error - -# CS1591: Missing XML comment for publicly visible type or member -dotnet_diagnostic.CS1591.severity = suggestion - -# CS0162: Remove unreachable code -dotnet_diagnostic.CS0162.severity = error # CA1018: Mark attributes with AttributeUsageAttribute -dotnet_diagnostic.CA1018.severity = error +dotnet_diagnostic.CA1018.severity = warning # CA1304: Specify CultureInfo dotnet_diagnostic.CA1304.severity = warning # CA1802: Use literals where appropriate dotnet_diagnostic.CA1802.severity = warning # CA1813: Avoid unsealed attributes -dotnet_diagnostic.CA1813.severity = error +dotnet_diagnostic.CA1813.severity = warning # CA1815: Override equals and operator equals on value types dotnet_diagnostic.CA1815.severity = warning # CA1820: Test for empty strings using string length dotnet_diagnostic.CA1820.severity = warning # CA1821: Remove empty finalizers -dotnet_diagnostic.CA1821.severity = error +dotnet_diagnostic.CA1821.severity = warning # CA1822: Mark members as static dotnet_diagnostic.CA1822.severity = suggestion dotnet_code_quality.CA1822.api_surface = private, internal # CA1823: Avoid unused private fields -dotnet_diagnostic.CA1823.severity = error +dotnet_diagnostic.CA1823.severity = warning # CA1825: Avoid zero-length array allocations dotnet_diagnostic.CA1825.severity = warning # CA1826: Use property instead of Linq Enumerable method @@ -182,48 +174,48 @@ dotnet_diagnostic.CA1851.severity = warning #CA1854: Prefer the IDictionary.TryGetValue(TKey, out TValue) method dotnet_diagnostic.CA1854.severity = warning #CA2211:Non-constant fields should not be visible -dotnet_diagnostic.CA2211.severity = error +dotnet_diagnostic.CA2211.severity = warning # Wrapping preferences csharp_wrap_before_ternary_opsigns = false # Avalonia DevAnalyzer preferences -dotnet_diagnostic.AVADEV2001.severity = error +dotnet_diagnostic.AVADEV2001.severity = warning # Avalonia PublicAnalyzer preferences -dotnet_diagnostic.AVP1000.severity = error -dotnet_diagnostic.AVP1001.severity = error -dotnet_diagnostic.AVP1002.severity = error -dotnet_diagnostic.AVP1010.severity = error -dotnet_diagnostic.AVP1011.severity = error +dotnet_diagnostic.AVP1000.severity = warning +dotnet_diagnostic.AVP1001.severity = warning +dotnet_diagnostic.AVP1002.severity = warning +dotnet_diagnostic.AVP1010.severity = warning +dotnet_diagnostic.AVP1011.severity = warning dotnet_diagnostic.AVP1012.severity = warning -dotnet_diagnostic.AVP1013.severity = error -dotnet_diagnostic.AVP1020.severity = error -dotnet_diagnostic.AVP1021.severity = error -dotnet_diagnostic.AVP1022.severity = error -dotnet_diagnostic.AVP1030.severity = error -dotnet_diagnostic.AVP1031.severity = error -dotnet_diagnostic.AVP1032.severity = error -dotnet_diagnostic.AVP1040.severity = error -dotnet_diagnostic.AVA2001.severity = error +dotnet_diagnostic.AVP1013.severity = warning +dotnet_diagnostic.AVP1020.severity = warning +dotnet_diagnostic.AVP1021.severity = warning +dotnet_diagnostic.AVP1022.severity = warning +dotnet_diagnostic.AVP1030.severity = warning +dotnet_diagnostic.AVP1031.severity = warning +dotnet_diagnostic.AVP1032.severity = warning +dotnet_diagnostic.AVP1040.severity = warning +dotnet_diagnostic.AVA2001.severity = warning # Xaml files [*.{xaml,axaml}] indent_size = 2 # DuplicateSetterError -avalonia_xaml_diagnostic.AVLN2203.severity = error +avalonia_xaml_diagnostic.AVLN2203.severity = warning # StyleInMergedDictionaries -avalonia_xaml_diagnostic.AVLN2204.severity = error +avalonia_xaml_diagnostic.AVLN2204.severity = warning # RequiredTemplatePartMissing -avalonia_xaml_diagnostic.AVLN2205.severity = error +avalonia_xaml_diagnostic.AVLN2205.severity = warning # OptionalTemplatePartMissing avalonia_xaml_diagnostic.AVLN2206.severity = info # TemplatePartWrongType -avalonia_xaml_diagnostic.AVLN2207.severity = error +avalonia_xaml_diagnostic.AVLN2207.severity = warning # ItemContainerInsideTemplate -avalonia_xaml_diagnostic.AVLN2208.severity = error +avalonia_xaml_diagnostic.AVLN2208.severity = warning # Obsolete -avalonia_xaml_diagnostic.AVLN5001.severity = error +avalonia_xaml_diagnostic.AVLN5001.severity = warning # Xml project files [*.{csproj,vcxproj,vcxproj.filters,proj,nativeproj,locproj}] diff --git a/.gitmodules b/.gitmodules index 9c58db0b3a..07f532607a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,6 +4,3 @@ [submodule "XamlX"] path = external/XamlX url = https://github.com/kekekeks/XamlX.git -[submodule "Avalonia.Controls.DataGrid"] - path = external/Avalonia.Controls.DataGrid - url = https://github.com/AvaloniaUI/Avalonia.Controls.DataGrid.git diff --git a/.ncrunch/AppWithoutLifetime.v3.ncrunchproject b/.ncrunch/AppWithoutLifetime.v3.ncrunchproject index 3b82c33f1c..319cd523ce 100644 --- a/.ncrunch/AppWithoutLifetime.v3.ncrunchproject +++ b/.ncrunch/AppWithoutLifetime.v3.ncrunchproject @@ -1,8 +1,5 @@  - - TargetFramework = net8.0 - True \ No newline at end of file diff --git a/.ncrunch/Avalonia.Analyzers.v3.ncrunchproject b/.ncrunch/Avalonia.Analyzers.CSharp.v3.ncrunchproject similarity index 63% rename from .ncrunch/Avalonia.Analyzers.v3.ncrunchproject rename to .ncrunch/Avalonia.Analyzers.CSharp.v3.ncrunchproject index a079eefacf..08b7dfa6ee 100644 --- a/.ncrunch/Avalonia.Analyzers.v3.ncrunchproject +++ b/.ncrunch/Avalonia.Analyzers.CSharp.v3.ncrunchproject @@ -3,5 +3,6 @@ TargetFramework = netstandard2.0 + False \ No newline at end of file diff --git a/.ncrunch/Avalonia.iOS.v3.ncrunchproject b/.ncrunch/Avalonia.Analyzers.CodeFixes.CSharp.v3.ncrunchproject similarity index 63% rename from .ncrunch/Avalonia.iOS.v3.ncrunchproject rename to .ncrunch/Avalonia.Analyzers.CodeFixes.CSharp.v3.ncrunchproject index 00c1cea8f4..08b7dfa6ee 100644 --- a/.ncrunch/Avalonia.iOS.v3.ncrunchproject +++ b/.ncrunch/Avalonia.Analyzers.CodeFixes.CSharp.v3.ncrunchproject @@ -3,6 +3,6 @@ TargetFramework = netstandard2.0 - True + False \ No newline at end of file diff --git a/.ncrunch/MiniMvvm.v3.ncrunchproject b/.ncrunch/Avalonia.Analyzers.VisualBasic.v3.ncrunchproject similarity index 63% rename from .ncrunch/MiniMvvm.v3.ncrunchproject rename to .ncrunch/Avalonia.Analyzers.VisualBasic.v3.ncrunchproject index 00c1cea8f4..08b7dfa6ee 100644 --- a/.ncrunch/MiniMvvm.v3.ncrunchproject +++ b/.ncrunch/Avalonia.Analyzers.VisualBasic.v3.ncrunchproject @@ -3,6 +3,6 @@ TargetFramework = netstandard2.0 - True + False \ No newline at end of file diff --git a/.ncrunch/Avalonia.Android.v3.ncrunchproject b/.ncrunch/Avalonia.Android.v3.ncrunchproject index 1335822600..a739b1286b 100644 --- a/.ncrunch/Avalonia.Android.v3.ncrunchproject +++ b/.ncrunch/Avalonia.Android.v3.ncrunchproject @@ -1,7 +1,7 @@  - TargetFramework = net8.0-android34.0 + TargetFramework = net10.0-android36.0 True diff --git a/.ncrunch/Avalonia.Base.UnitTests.v3.ncrunchproject b/.ncrunch/Avalonia.Base.UnitTests.v3.ncrunchproject index 1733492c89..0bcc569d05 100644 --- a/.ncrunch/Avalonia.Base.UnitTests.v3.ncrunchproject +++ b/.ncrunch/Avalonia.Base.UnitTests.v3.ncrunchproject @@ -1,7 +1,5 @@  - - TargetFramework = net8.0 - + False \ No newline at end of file diff --git a/.ncrunch/Avalonia.Base.v3.ncrunchproject b/.ncrunch/Avalonia.Base.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.Base.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ 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 3b82c33f1c..0000000000 --- a/.ncrunch/Avalonia.Benchmarks.v3.ncrunchproject +++ /dev/null @@ -1,8 +0,0 @@ - - - - TargetFramework = net8.0 - - True - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.Browser.Blazor.v3.ncrunchproject b/.ncrunch/Avalonia.Browser.Blazor.v3.ncrunchproject deleted file mode 100644 index 7e6955b244..0000000000 --- a/.ncrunch/Avalonia.Browser.Blazor.v3.ncrunchproject +++ /dev/null @@ -1,8 +0,0 @@ - - - - TargetFramework = net8.0-browser - - True - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.Browser.v3.ncrunchproject b/.ncrunch/Avalonia.Browser.v3.ncrunchproject deleted file mode 100644 index 7e6955b244..0000000000 --- a/.ncrunch/Avalonia.Browser.v3.ncrunchproject +++ /dev/null @@ -1,8 +0,0 @@ - - - - TargetFramework = net8.0-browser - - True - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.Build.Tasks.UnitTest.v3.ncrunchproject b/.ncrunch/Avalonia.Build.Tasks.UnitTest.v3.ncrunchproject deleted file mode 100644 index f144353670..0000000000 --- a/.ncrunch/Avalonia.Build.Tasks.UnitTest.v3.ncrunchproject +++ /dev/null @@ -1,8 +0,0 @@ - - - - TargetFramework = net472 - - True - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.Build.Tasks.v3.ncrunchproject b/.ncrunch/Avalonia.Build.Tasks.v3.ncrunchproject index a079eefacf..08b7dfa6ee 100644 --- a/.ncrunch/Avalonia.Build.Tasks.v3.ncrunchproject +++ b/.ncrunch/Avalonia.Build.Tasks.v3.ncrunchproject @@ -3,5 +3,6 @@ TargetFramework = netstandard2.0 + False \ No newline at end of file diff --git a/.ncrunch/Avalonia.Controls.DataGrid.UnitTests.v3.ncrunchproject b/.ncrunch/Avalonia.Controls.DataGrid.UnitTests.v3.ncrunchproject deleted file mode 100644 index 1733492c89..0000000000 --- a/.ncrunch/Avalonia.Controls.DataGrid.UnitTests.v3.ncrunchproject +++ /dev/null @@ -1,7 +0,0 @@ - - - - TargetFramework = net8.0 - - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.Controls.UnitTests.v3.ncrunchproject b/.ncrunch/Avalonia.Controls.UnitTests.v3.ncrunchproject index 1733492c89..0bcc569d05 100644 --- a/.ncrunch/Avalonia.Controls.UnitTests.v3.ncrunchproject +++ b/.ncrunch/Avalonia.Controls.UnitTests.v3.ncrunchproject @@ -1,7 +1,5 @@  - - TargetFramework = net8.0 - + False \ No newline at end of file diff --git a/.ncrunch/Avalonia.Controls.v3.ncrunchproject b/.ncrunch/Avalonia.Controls.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.Controls.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.Designer.HostApp.v3.ncrunchproject b/.ncrunch/Avalonia.Designer.HostApp.v3.ncrunchproject deleted file mode 100644 index 3b82c33f1c..0000000000 --- a/.ncrunch/Avalonia.Designer.HostApp.v3.ncrunchproject +++ /dev/null @@ -1,8 +0,0 @@ - - - - TargetFramework = net8.0 - - True - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.DesignerSupport.TestApp.v3.ncrunchproject b/.ncrunch/Avalonia.DesignerSupport.TestApp.v3.ncrunchproject deleted file mode 100644 index 1733492c89..0000000000 --- a/.ncrunch/Avalonia.DesignerSupport.TestApp.v3.ncrunchproject +++ /dev/null @@ -1,7 +0,0 @@ - - - - TargetFramework = net8.0 - - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.DesignerSupport.Tests.v3.ncrunchproject b/.ncrunch/Avalonia.DesignerSupport.Tests.v3.ncrunchproject deleted file mode 100644 index 3b82c33f1c..0000000000 --- a/.ncrunch/Avalonia.DesignerSupport.Tests.v3.ncrunchproject +++ /dev/null @@ -1,8 +0,0 @@ - - - - TargetFramework = net8.0 - - True - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.DesignerSupport.v3.ncrunchproject b/.ncrunch/Avalonia.DesignerSupport.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.DesignerSupport.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.Desktop.v3.ncrunchproject b/.ncrunch/Avalonia.Desktop.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.Desktop.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.AndroidTestApplication.v3.ncrunchproject b/.ncrunch/Avalonia.Diagnostics.net6.0.v3.ncrunchproject similarity index 100% rename from .ncrunch/Avalonia.AndroidTestApplication.v3.ncrunchproject rename to .ncrunch/Avalonia.Diagnostics.net6.0.v3.ncrunchproject diff --git a/.ncrunch/Avalonia.Desktop.net6.0.v3.ncrunchproject b/.ncrunch/Avalonia.Diagnostics.net8.0.v3.ncrunchproject similarity index 100% rename from .ncrunch/Avalonia.Desktop.net6.0.v3.ncrunchproject rename to .ncrunch/Avalonia.Diagnostics.net8.0.v3.ncrunchproject diff --git a/.ncrunch/Avalonia.Desktop.netstandard2.0.v3.ncrunchproject b/.ncrunch/Avalonia.Diagnostics.netstandard2.0.v3.ncrunchproject similarity index 100% rename from .ncrunch/Avalonia.Desktop.netstandard2.0.v3.ncrunchproject rename to .ncrunch/Avalonia.Diagnostics.netstandard2.0.v3.ncrunchproject diff --git a/.ncrunch/Avalonia.Dialogs.v3.ncrunchproject b/.ncrunch/Avalonia.Dialogs.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.Dialogs.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ 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 1733492c89..0000000000 --- a/.ncrunch/Avalonia.Direct2D1.RenderTests.v3.ncrunchproject +++ /dev/null @@ -1,7 +0,0 @@ - - - - TargetFramework = net8.0 - - - \ 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 1733492c89..0000000000 --- a/.ncrunch/Avalonia.Direct2D1.UnitTests.v3.ncrunchproject +++ /dev/null @@ -1,7 +0,0 @@ - - - - TargetFramework = net8.0 - - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.Fonts.Inter.v3.ncrunchproject b/.ncrunch/Avalonia.Fonts.Inter.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.Fonts.Inter.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.FreeDesktop.v3.ncrunchproject b/.ncrunch/Avalonia.FreeDesktop.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.FreeDesktop.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.Generators.Tests.v3.ncrunchproject b/.ncrunch/Avalonia.Generators.Tests.v3.ncrunchproject deleted file mode 100644 index 3b82c33f1c..0000000000 --- a/.ncrunch/Avalonia.Generators.Tests.v3.ncrunchproject +++ /dev/null @@ -1,8 +0,0 @@ - - - - TargetFramework = net8.0 - - True - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.Generators.v3.ncrunchproject b/.ncrunch/Avalonia.Generators.v3.ncrunchproject index a079eefacf..08b7dfa6ee 100644 --- a/.ncrunch/Avalonia.Generators.v3.ncrunchproject +++ b/.ncrunch/Avalonia.Generators.v3.ncrunchproject @@ -3,5 +3,6 @@ TargetFramework = netstandard2.0 + False \ No newline at end of file diff --git a/.ncrunch/Avalonia.HarfBuzz.v3.ncrunchproject b/.ncrunch/Avalonia.HarfBuzz.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.HarfBuzz.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.Headless.NUnit.PerAssembly.UnitTests.v3.ncrunchproject b/.ncrunch/Avalonia.Headless.NUnit.PerAssembly.UnitTests.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.Headless.NUnit.PerAssembly.UnitTests.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.Headless.NUnit.PerTest.UnitTests.v3.ncrunchproject b/.ncrunch/Avalonia.Headless.NUnit.PerTest.UnitTests.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.Headless.NUnit.PerTest.UnitTests.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.Headless.NUnit.UnitTests.v3.ncrunchproject b/.ncrunch/Avalonia.Headless.NUnit.UnitTests.v3.ncrunchproject deleted file mode 100644 index 1733492c89..0000000000 --- a/.ncrunch/Avalonia.Headless.NUnit.UnitTests.v3.ncrunchproject +++ /dev/null @@ -1,7 +0,0 @@ - - - - TargetFramework = net8.0 - - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.Headless.NUnit.v3.ncrunchproject b/.ncrunch/Avalonia.Headless.NUnit.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.Headless.NUnit.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.Headless.Vnc.v3.ncrunchproject b/.ncrunch/Avalonia.Headless.Vnc.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.Headless.Vnc.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.Headless.XUnit.PerAssembly.UnitTests.v3.ncrunchproject b/.ncrunch/Avalonia.Headless.XUnit.PerAssembly.UnitTests.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.Headless.XUnit.PerAssembly.UnitTests.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.Headless.XUnit.PerTest.UnitTests.v3.ncrunchproject b/.ncrunch/Avalonia.Headless.XUnit.PerTest.UnitTests.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.Headless.XUnit.PerTest.UnitTests.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.Headless.XUnit.UnitTests.v3.ncrunchproject b/.ncrunch/Avalonia.Headless.XUnit.UnitTests.v3.ncrunchproject deleted file mode 100644 index 1733492c89..0000000000 --- a/.ncrunch/Avalonia.Headless.XUnit.UnitTests.v3.ncrunchproject +++ /dev/null @@ -1,7 +0,0 @@ - - - - TargetFramework = net8.0 - - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.Headless.XUnit.v3.ncrunchproject b/.ncrunch/Avalonia.Headless.XUnit.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.Headless.XUnit.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.Headless.v3.ncrunchproject b/.ncrunch/Avalonia.Headless.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.Headless.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.IntegrationTests.Appium.v3.ncrunchproject b/.ncrunch/Avalonia.IntegrationTests.Appium.v3.ncrunchproject deleted file mode 100644 index 3b82c33f1c..0000000000 --- a/.ncrunch/Avalonia.IntegrationTests.Appium.v3.ncrunchproject +++ /dev/null @@ -1,8 +0,0 @@ - - - - TargetFramework = net8.0 - - True - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.IntegrationTests.Win32.v3.ncrunchproject b/.ncrunch/Avalonia.IntegrationTests.Win32.v3.ncrunchproject deleted file mode 100644 index 319cd523ce..0000000000 --- a/.ncrunch/Avalonia.IntegrationTests.Win32.v3.ncrunchproject +++ /dev/null @@ -1,5 +0,0 @@ - - - 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 18f2aee75c..0000000000 --- a/.ncrunch/Avalonia.LeakTests.v3.ncrunchproject +++ /dev/null @@ -1,7 +0,0 @@ - - - - TargetFramework = net462 - - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.Markup.UnitTests.v3.ncrunchproject b/.ncrunch/Avalonia.Markup.UnitTests.v3.ncrunchproject index 1733492c89..0bcc569d05 100644 --- a/.ncrunch/Avalonia.Markup.UnitTests.v3.ncrunchproject +++ b/.ncrunch/Avalonia.Markup.UnitTests.v3.ncrunchproject @@ -1,7 +1,5 @@  - - TargetFramework = net8.0 - + False \ No newline at end of file diff --git a/.ncrunch/Avalonia.Markup.Xaml.Loader.v3.ncrunchproject b/.ncrunch/Avalonia.Markup.Xaml.Loader.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.Markup.Xaml.Loader.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.Markup.Xaml.UnitTests.v3.ncrunchproject b/.ncrunch/Avalonia.Markup.Xaml.UnitTests.v3.ncrunchproject index 1733492c89..0bcc569d05 100644 --- a/.ncrunch/Avalonia.Markup.Xaml.UnitTests.v3.ncrunchproject +++ b/.ncrunch/Avalonia.Markup.Xaml.UnitTests.v3.ncrunchproject @@ -1,7 +1,5 @@  - - TargetFramework = net8.0 - + False \ No newline at end of file diff --git a/.ncrunch/Avalonia.Markup.Xaml.v3.ncrunchproject b/.ncrunch/Avalonia.Markup.Xaml.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.Markup.Xaml.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.Markup.v3.ncrunchproject b/.ncrunch/Avalonia.Markup.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.Markup.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.Metal.v3.ncrunchproject b/.ncrunch/Avalonia.Metal.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.Metal.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.MicroCom.v3.ncrunchproject b/.ncrunch/Avalonia.MicroCom.v3.ncrunchproject index a079eefacf..0bcc569d05 100644 --- a/.ncrunch/Avalonia.MicroCom.v3.ncrunchproject +++ b/.ncrunch/Avalonia.MicroCom.v3.ncrunchproject @@ -1,7 +1,5 @@  - - TargetFramework = netstandard2.0 - + False \ No newline at end of file diff --git a/.ncrunch/Avalonia.Native.net6.0.v3.ncrunchproject b/.ncrunch/Avalonia.Native.net6.0.v3.ncrunchproject deleted file mode 100644 index e8de009693..0000000000 --- a/.ncrunch/Avalonia.Native.net6.0.v3.ncrunchproject +++ /dev/null @@ -1,6 +0,0 @@ - - - True - - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.Native.netstandard2.0.v3.ncrunchproject b/.ncrunch/Avalonia.Native.netstandard2.0.v3.ncrunchproject deleted file mode 100644 index 319cd523ce..0000000000 --- a/.ncrunch/Avalonia.Native.netstandard2.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/Avalonia.Native.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.Native.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.OpenGL.v3.ncrunchproject b/.ncrunch/Avalonia.OpenGL.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.OpenGL.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ 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 1733492c89..0000000000 --- a/.ncrunch/Avalonia.ReactiveUI.UnitTests.v3.ncrunchproject +++ /dev/null @@ -1,7 +0,0 @@ - - - - TargetFramework = net8.0 - - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.Remote.Protocol.v3.ncrunchproject b/.ncrunch/Avalonia.Remote.Protocol.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.Remote.Protocol.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.RenderTests.WpfCompare.v3.ncrunchproject b/.ncrunch/Avalonia.RenderTests.WpfCompare.v3.ncrunchproject deleted file mode 100644 index 96fdff3555..0000000000 --- a/.ncrunch/Avalonia.RenderTests.WpfCompare.v3.ncrunchproject +++ /dev/null @@ -1,7 +0,0 @@ - - - - TargetFramework = net8.0-windows - - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.Skia.RenderTests.v3.ncrunchproject b/.ncrunch/Avalonia.Skia.RenderTests.v3.ncrunchproject index 1733492c89..0bcc569d05 100644 --- a/.ncrunch/Avalonia.Skia.RenderTests.v3.ncrunchproject +++ b/.ncrunch/Avalonia.Skia.RenderTests.v3.ncrunchproject @@ -1,7 +1,5 @@  - - TargetFramework = net8.0 - + False \ No newline at end of file diff --git a/.ncrunch/Avalonia.Skia.UnitTests.v3.ncrunchproject b/.ncrunch/Avalonia.Skia.UnitTests.v3.ncrunchproject index 1733492c89..0bcc569d05 100644 --- a/.ncrunch/Avalonia.Skia.UnitTests.v3.ncrunchproject +++ b/.ncrunch/Avalonia.Skia.UnitTests.v3.ncrunchproject @@ -1,7 +1,5 @@  - - TargetFramework = net8.0 - + False \ No newline at end of file diff --git a/.ncrunch/Avalonia.Skia.v3.ncrunchproject b/.ncrunch/Avalonia.Skia.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.Skia.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.Themes.Fluent.net6.0.v3.ncrunchproject b/.ncrunch/Avalonia.Themes.Fluent.net6.0.v3.ncrunchproject deleted file mode 100644 index 02eb0d211e..0000000000 --- a/.ncrunch/Avalonia.Themes.Fluent.net6.0.v3.ncrunchproject +++ /dev/null @@ -1,5 +0,0 @@ - - - False - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.Themes.Fluent.netstandard2.0.v3.ncrunchproject b/.ncrunch/Avalonia.Themes.Fluent.netstandard2.0.v3.ncrunchproject deleted file mode 100644 index 02eb0d211e..0000000000 --- a/.ncrunch/Avalonia.Themes.Fluent.netstandard2.0.v3.ncrunchproject +++ /dev/null @@ -1,5 +0,0 @@ - - - False - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.Themes.Fluent.v3.ncrunchproject b/.ncrunch/Avalonia.Themes.Fluent.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.Themes.Fluent.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.Themes.Simple.netstandard2.0.v3.ncrunchproject b/.ncrunch/Avalonia.Themes.Simple.netstandard2.0.v3.ncrunchproject deleted file mode 100644 index bc1af9a143..0000000000 --- a/.ncrunch/Avalonia.Themes.Simple.netstandard2.0.v3.ncrunchproject +++ /dev/null @@ -1,8 +0,0 @@ - - - - ..\Avalonia.Themes.Fluent\Strings\InvariantResources.xaml - - False - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.Themes.Simple.net8.0.v3.ncrunchproject b/.ncrunch/Avalonia.Themes.Simple.v3.ncrunchproject similarity index 69% rename from .ncrunch/Avalonia.Themes.Simple.net8.0.v3.ncrunchproject rename to .ncrunch/Avalonia.Themes.Simple.v3.ncrunchproject index bc1af9a143..cf2b7e5426 100644 --- a/.ncrunch/Avalonia.Themes.Simple.net8.0.v3.ncrunchproject +++ b/.ncrunch/Avalonia.Themes.Simple.v3.ncrunchproject @@ -1,8 +1,8 @@  + False ..\Avalonia.Themes.Fluent\Strings\InvariantResources.xaml - False \ No newline at end of file diff --git a/.ncrunch/Avalonia.Tizen.v3.ncrunchproject b/.ncrunch/Avalonia.Tizen.v3.ncrunchproject deleted file mode 100644 index d2c880c578..0000000000 --- a/.ncrunch/Avalonia.Tizen.v3.ncrunchproject +++ /dev/null @@ -1,8 +0,0 @@ - - - - TargetFramework = net8.0-tizen - - True - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.UnitTests.v3.ncrunchproject b/.ncrunch/Avalonia.UnitTests.v3.ncrunchproject index 7a4ea98049..0bcc569d05 100644 --- a/.ncrunch/Avalonia.UnitTests.v3.ncrunchproject +++ b/.ncrunch/Avalonia.UnitTests.v3.ncrunchproject @@ -1,8 +1,5 @@  - - TargetFramework = netstandard2.0 - - False + False \ No newline at end of file diff --git a/.ncrunch/Avalonia.Vulkan.v3.ncrunchproject b/.ncrunch/Avalonia.Vulkan.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.Vulkan.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.Win32.Automation.v3.ncrunchproject b/.ncrunch/Avalonia.Win32.Automation.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.Win32.Automation.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.Win32.Interoperability.v3.ncrunchproject b/.ncrunch/Avalonia.Win32.Interoperability.v3.ncrunchproject deleted file mode 100644 index 96fdff3555..0000000000 --- a/.ncrunch/Avalonia.Win32.Interoperability.v3.ncrunchproject +++ /dev/null @@ -1,7 +0,0 @@ - - - - TargetFramework = net8.0-windows - - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.Win32.net6.0.v3.ncrunchproject b/.ncrunch/Avalonia.Win32.net6.0.v3.ncrunchproject deleted file mode 100644 index 95a483b433..0000000000 --- a/.ncrunch/Avalonia.Win32.net6.0.v3.ncrunchproject +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.Win32.netstandard2.0.v3.ncrunchproject b/.ncrunch/Avalonia.Win32.netstandard2.0.v3.ncrunchproject deleted file mode 100644 index 95a483b433..0000000000 --- a/.ncrunch/Avalonia.Win32.netstandard2.0.v3.ncrunchproject +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.Win32.v3.ncrunchproject b/.ncrunch/Avalonia.Win32.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.Win32.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.X11.net6.0.v3.ncrunchproject b/.ncrunch/Avalonia.X11.net6.0.v3.ncrunchproject deleted file mode 100644 index 319cd523ce..0000000000 --- a/.ncrunch/Avalonia.X11.net6.0.v3.ncrunchproject +++ /dev/null @@ -1,5 +0,0 @@ - - - True - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.X11.netstandard2.0.v3.ncrunchproject b/.ncrunch/Avalonia.X11.netstandard2.0.v3.ncrunchproject deleted file mode 100644 index 319cd523ce..0000000000 --- a/.ncrunch/Avalonia.X11.netstandard2.0.v3.ncrunchproject +++ /dev/null @@ -1,5 +0,0 @@ - - - True - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.X11.v3.ncrunchproject b/.ncrunch/Avalonia.X11.v3.ncrunchproject new file mode 100644 index 0000000000..0bcc569d05 --- /dev/null +++ b/.ncrunch/Avalonia.X11.v3.ncrunchproject @@ -0,0 +1,5 @@ + + + False + + \ No newline at end of file diff --git a/.ncrunch/Avalonia.net6.0.v3.ncrunchproject b/.ncrunch/Avalonia.net6.0.v3.ncrunchproject deleted file mode 100644 index 4fdcd169ae..0000000000 --- a/.ncrunch/Avalonia.net6.0.v3.ncrunchproject +++ /dev/null @@ -1,7 +0,0 @@ - - - - DerivedFilesIncludedInWorkspace - - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.net8.0.v3.ncrunchproject b/.ncrunch/Avalonia.net8.0.v3.ncrunchproject deleted file mode 100644 index 4fdcd169ae..0000000000 --- a/.ncrunch/Avalonia.net8.0.v3.ncrunchproject +++ /dev/null @@ -1,7 +0,0 @@ - - - - DerivedFilesIncludedInWorkspace - - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.netcoreapp2.0.v3.ncrunchproject b/.ncrunch/Avalonia.netcoreapp2.0.v3.ncrunchproject deleted file mode 100644 index 4fdcd169ae..0000000000 --- a/.ncrunch/Avalonia.netcoreapp2.0.v3.ncrunchproject +++ /dev/null @@ -1,7 +0,0 @@ - - - - DerivedFilesIncludedInWorkspace - - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.netstandard2.0.v3.ncrunchproject b/.ncrunch/Avalonia.netstandard2.0.v3.ncrunchproject deleted file mode 100644 index 4fdcd169ae..0000000000 --- a/.ncrunch/Avalonia.netstandard2.0.v3.ncrunchproject +++ /dev/null @@ -1,7 +0,0 @@ - - - - DerivedFilesIncludedInWorkspace - - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.net461.v3.ncrunchproject b/.ncrunch/Avalonia.v3.ncrunchproject similarity index 63% rename from .ncrunch/Avalonia.net461.v3.ncrunchproject rename to .ncrunch/Avalonia.v3.ncrunchproject index 4fdcd169ae..b12ed97abf 100644 --- a/.ncrunch/Avalonia.net461.v3.ncrunchproject +++ b/.ncrunch/Avalonia.v3.ncrunchproject @@ -3,5 +3,6 @@ DerivedFilesIncludedInWorkspace + False \ No newline at end of file diff --git a/.ncrunch/BindingDemo.v3.ncrunchproject b/.ncrunch/BindingDemo.v3.ncrunchproject index 3b82c33f1c..319cd523ce 100644 --- a/.ncrunch/BindingDemo.v3.ncrunchproject +++ b/.ncrunch/BindingDemo.v3.ncrunchproject @@ -1,8 +1,5 @@  - - TargetFramework = net8.0 - True \ No newline at end of file diff --git a/.ncrunch/ControlCatalog.Android.v3.ncrunchproject b/.ncrunch/ControlCatalog.Android.v3.ncrunchproject index 1335822600..319cd523ce 100644 --- a/.ncrunch/ControlCatalog.Android.v3.ncrunchproject +++ b/.ncrunch/ControlCatalog.Android.v3.ncrunchproject @@ -1,8 +1,5 @@  - - TargetFramework = net8.0-android34.0 - True \ No newline at end of file diff --git a/.ncrunch/ControlCatalog.Browser.Blazor.v3.ncrunchproject b/.ncrunch/ControlCatalog.Browser.Blazor.v3.ncrunchproject deleted file mode 100644 index 7e6955b244..0000000000 --- a/.ncrunch/ControlCatalog.Browser.Blazor.v3.ncrunchproject +++ /dev/null @@ -1,8 +0,0 @@ - - - - TargetFramework = net8.0-browser - - True - - \ No newline at end of file diff --git a/.ncrunch/ControlCatalog.Browser.v3.ncrunchproject b/.ncrunch/ControlCatalog.Browser.v3.ncrunchproject index 7e6955b244..319cd523ce 100644 --- a/.ncrunch/ControlCatalog.Browser.v3.ncrunchproject +++ b/.ncrunch/ControlCatalog.Browser.v3.ncrunchproject @@ -1,8 +1,5 @@  - - TargetFramework = net8.0-browser - True \ No newline at end of file diff --git a/.ncrunch/ControlCatalog.Desktop.v3.ncrunchproject b/.ncrunch/ControlCatalog.Desktop.v3.ncrunchproject index ea3a821a00..319cd523ce 100644 --- a/.ncrunch/ControlCatalog.Desktop.v3.ncrunchproject +++ b/.ncrunch/ControlCatalog.Desktop.v3.ncrunchproject @@ -1,8 +1,5 @@  - - TargetFramework = net461 - True \ No newline at end of file diff --git a/.ncrunch/Avalonia.FreeDesktop.net6.0.v3.ncrunchproject b/.ncrunch/ControlCatalog.MacCatalyst.v3.ncrunchproject similarity index 100% rename from .ncrunch/Avalonia.FreeDesktop.net6.0.v3.ncrunchproject rename to .ncrunch/ControlCatalog.MacCatalyst.v3.ncrunchproject diff --git a/.ncrunch/ControlCatalog.NetCore.v3.ncrunchproject b/.ncrunch/ControlCatalog.NetCore.v3.ncrunchproject deleted file mode 100644 index 3b82c33f1c..0000000000 --- a/.ncrunch/ControlCatalog.NetCore.v3.ncrunchproject +++ /dev/null @@ -1,8 +0,0 @@ - - - - TargetFramework = net8.0 - - True - - \ No newline at end of file diff --git a/.ncrunch/ControlCatalog.Tizen.v3.ncrunchproject b/.ncrunch/ControlCatalog.Tizen.v3.ncrunchproject deleted file mode 100644 index d2c880c578..0000000000 --- a/.ncrunch/ControlCatalog.Tizen.v3.ncrunchproject +++ /dev/null @@ -1,8 +0,0 @@ - - - - TargetFramework = net8.0-tizen - - True - - \ No newline at end of file diff --git a/.ncrunch/ControlCatalog.iOS.v3.ncrunchproject b/.ncrunch/ControlCatalog.iOS.v3.ncrunchproject index 6ae5567f23..319cd523ce 100644 --- a/.ncrunch/ControlCatalog.iOS.v3.ncrunchproject +++ b/.ncrunch/ControlCatalog.iOS.v3.ncrunchproject @@ -1,8 +1,5 @@  - - TargetFramework = net8.0-ios17.0 - True \ No newline at end of file diff --git a/.ncrunch/ControlCatalog.net8.0.v3.ncrunchproject b/.ncrunch/ControlCatalog.net8.0.v3.ncrunchproject deleted file mode 100644 index 319cd523ce..0000000000 --- a/.ncrunch/ControlCatalog.net8.0.v3.ncrunchproject +++ /dev/null @@ -1,5 +0,0 @@ - - - True - - \ No newline at end of file diff --git a/.ncrunch/ControlCatalog.netstandard2.0.v3.ncrunchproject b/.ncrunch/ControlCatalog.netstandard2.0.v3.ncrunchproject deleted file mode 100644 index 319cd523ce..0000000000 --- a/.ncrunch/ControlCatalog.netstandard2.0.v3.ncrunchproject +++ /dev/null @@ -1,5 +0,0 @@ - - - True - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.FreeDesktop.netstandard2.0.v3.ncrunchproject b/.ncrunch/ControlCatalog.tvOS.v3.ncrunchproject similarity index 100% rename from .ncrunch/Avalonia.FreeDesktop.netstandard2.0.v3.ncrunchproject rename to .ncrunch/ControlCatalog.tvOS.v3.ncrunchproject diff --git a/.ncrunch/ControlSamples.v3.ncrunchproject b/.ncrunch/ControlSamples.v3.ncrunchproject index 00c1cea8f4..319cd523ce 100644 --- a/.ncrunch/ControlSamples.v3.ncrunchproject +++ b/.ncrunch/ControlSamples.v3.ncrunchproject @@ -1,8 +1,5 @@  - - TargetFramework = netstandard2.0 - True \ No newline at end of file diff --git a/.ncrunch/DevAnalyzers.v3.ncrunchproject b/.ncrunch/DevAnalyzers.v3.ncrunchproject index a079eefacf..08b7dfa6ee 100644 --- a/.ncrunch/DevAnalyzers.v3.ncrunchproject +++ b/.ncrunch/DevAnalyzers.v3.ncrunchproject @@ -3,5 +3,6 @@ TargetFramework = netstandard2.0 + False \ No newline at end of file diff --git a/.ncrunch/DevGenerators.v3.ncrunchproject b/.ncrunch/DevGenerators.v3.ncrunchproject index a079eefacf..08b7dfa6ee 100644 --- a/.ncrunch/DevGenerators.v3.ncrunchproject +++ b/.ncrunch/DevGenerators.v3.ncrunchproject @@ -3,5 +3,6 @@ TargetFramework = netstandard2.0 + False \ No newline at end of file diff --git a/.ncrunch/Direct3DInteropSample.v3.ncrunchproject b/.ncrunch/Direct3DInteropSample.v3.ncrunchproject deleted file mode 100644 index 319cd523ce..0000000000 --- a/.ncrunch/Direct3DInteropSample.v3.ncrunchproject +++ /dev/null @@ -1,5 +0,0 @@ - - - True - - \ No newline at end of file diff --git a/.ncrunch/Generators.Sandbox.v3.ncrunchproject b/.ncrunch/Generators.Sandbox.v3.ncrunchproject deleted file mode 100644 index 3b82c33f1c..0000000000 --- a/.ncrunch/Generators.Sandbox.v3.ncrunchproject +++ /dev/null @@ -1,8 +0,0 @@ - - - - TargetFramework = net8.0 - - True - - \ No newline at end of file diff --git a/.ncrunch/GpuInterop.v3.ncrunchproject b/.ncrunch/GpuInterop.v3.ncrunchproject index 3b82c33f1c..319cd523ce 100644 --- a/.ncrunch/GpuInterop.v3.ncrunchproject +++ b/.ncrunch/GpuInterop.v3.ncrunchproject @@ -1,8 +1,5 @@  - - TargetFramework = net8.0 - True \ No newline at end of file diff --git a/.ncrunch/IntegrationTestApp.v3.ncrunchproject b/.ncrunch/IntegrationTestApp.v3.ncrunchproject index 3b82c33f1c..319cd523ce 100644 --- a/.ncrunch/IntegrationTestApp.v3.ncrunchproject +++ b/.ncrunch/IntegrationTestApp.v3.ncrunchproject @@ -1,8 +1,5 @@  - - TargetFramework = net8.0 - True \ No newline at end of file diff --git a/.ncrunch/MobileSandbox.Android.v3.ncrunchproject b/.ncrunch/MobileSandbox.Android.v3.ncrunchproject deleted file mode 100644 index 319cd523ce..0000000000 --- a/.ncrunch/MobileSandbox.Android.v3.ncrunchproject +++ /dev/null @@ -1,5 +0,0 @@ - - - True - - \ No newline at end of file diff --git a/.ncrunch/MobileSandbox.Browser.v3.ncrunchproject b/.ncrunch/MobileSandbox.Browser.v3.ncrunchproject deleted file mode 100644 index 319cd523ce..0000000000 --- a/.ncrunch/MobileSandbox.Browser.v3.ncrunchproject +++ /dev/null @@ -1,5 +0,0 @@ - - - True - - \ No newline at end of file diff --git a/.ncrunch/MobileSandbox.Desktop.v3.ncrunchproject b/.ncrunch/MobileSandbox.Desktop.v3.ncrunchproject deleted file mode 100644 index 319cd523ce..0000000000 --- a/.ncrunch/MobileSandbox.Desktop.v3.ncrunchproject +++ /dev/null @@ -1,5 +0,0 @@ - - - True - - \ No newline at end of file diff --git a/.ncrunch/MobileSandbox.iOS.v3.ncrunchproject b/.ncrunch/MobileSandbox.iOS.v3.ncrunchproject deleted file mode 100644 index 319cd523ce..0000000000 --- a/.ncrunch/MobileSandbox.iOS.v3.ncrunchproject +++ /dev/null @@ -1,5 +0,0 @@ - - - True - - \ No newline at end of file diff --git a/.ncrunch/MobileSandbox.net6.0.v3.ncrunchproject b/.ncrunch/MobileSandbox.net6.0.v3.ncrunchproject deleted file mode 100644 index 319cd523ce..0000000000 --- a/.ncrunch/MobileSandbox.net6.0.v3.ncrunchproject +++ /dev/null @@ -1,5 +0,0 @@ - - - True - - \ No newline at end of file diff --git a/.ncrunch/MobileSandbox.netstandard2.0.v3.ncrunchproject b/.ncrunch/MobileSandbox.netstandard2.0.v3.ncrunchproject deleted file mode 100644 index 319cd523ce..0000000000 --- a/.ncrunch/MobileSandbox.netstandard2.0.v3.ncrunchproject +++ /dev/null @@ -1,5 +0,0 @@ - - - True - - \ No newline at end of file diff --git a/.ncrunch/MobileSandbox.v3.ncrunchproject b/.ncrunch/MobileSandbox.v3.ncrunchproject deleted file mode 100644 index 319cd523ce..0000000000 --- a/.ncrunch/MobileSandbox.v3.ncrunchproject +++ /dev/null @@ -1,5 +0,0 @@ - - - True - - \ No newline at end of file diff --git a/.ncrunch/NativeEmbedSample.v3.ncrunchproject b/.ncrunch/NativeEmbedSample.v3.ncrunchproject deleted file mode 100644 index 319cd523ce..0000000000 --- a/.ncrunch/NativeEmbedSample.v3.ncrunchproject +++ /dev/null @@ -1,5 +0,0 @@ - - - True - - \ No newline at end of file diff --git a/.ncrunch/PInvoke.v3.ncrunchproject b/.ncrunch/PInvoke.v3.ncrunchproject index 00c1cea8f4..95a483b433 100644 --- a/.ncrunch/PInvoke.v3.ncrunchproject +++ b/.ncrunch/PInvoke.v3.ncrunchproject @@ -1,8 +1,3 @@  - - - TargetFramework = netstandard2.0 - - True - + \ No newline at end of file diff --git a/.ncrunch/PlatformSanityChecks.v3.ncrunchproject b/.ncrunch/PlatformSanityChecks.v3.ncrunchproject index 3b82c33f1c..319cd523ce 100644 --- a/.ncrunch/PlatformSanityChecks.v3.ncrunchproject +++ b/.ncrunch/PlatformSanityChecks.v3.ncrunchproject @@ -1,8 +1,5 @@  - - TargetFramework = net8.0 - True \ No newline at end of file diff --git a/.ncrunch/Previewer.v3.ncrunchproject b/.ncrunch/Previewer.v3.ncrunchproject index 3b82c33f1c..319cd523ce 100644 --- a/.ncrunch/Previewer.v3.ncrunchproject +++ b/.ncrunch/Previewer.v3.ncrunchproject @@ -1,8 +1,5 @@  - - TargetFramework = net8.0 - True \ No newline at end of file diff --git a/.ncrunch/ReactiveUIDemo.v3.ncrunchproject b/.ncrunch/ReactiveUIDemo.v3.ncrunchproject deleted file mode 100644 index 3b82c33f1c..0000000000 --- a/.ncrunch/ReactiveUIDemo.v3.ncrunchproject +++ /dev/null @@ -1,8 +0,0 @@ - - - - TargetFramework = net8.0 - - True - - \ No newline at end of file diff --git a/.ncrunch/RemoteDemo.v3.ncrunchproject b/.ncrunch/RemoteDemo.v3.ncrunchproject index 3b82c33f1c..319cd523ce 100644 --- a/.ncrunch/RemoteDemo.v3.ncrunchproject +++ b/.ncrunch/RemoteDemo.v3.ncrunchproject @@ -1,8 +1,5 @@  - - TargetFramework = net8.0 - True \ No newline at end of file diff --git a/.ncrunch/RenderDemo.v3.ncrunchproject b/.ncrunch/RenderDemo.v3.ncrunchproject index 3b82c33f1c..319cd523ce 100644 --- a/.ncrunch/RenderDemo.v3.ncrunchproject +++ b/.ncrunch/RenderDemo.v3.ncrunchproject @@ -1,8 +1,5 @@  - - TargetFramework = net8.0 - True \ No newline at end of file diff --git a/.ncrunch/SafeAreaDemo.Android.v3.ncrunchproject b/.ncrunch/SafeAreaDemo.Android.v3.ncrunchproject index 1335822600..319cd523ce 100644 --- a/.ncrunch/SafeAreaDemo.Android.v3.ncrunchproject +++ b/.ncrunch/SafeAreaDemo.Android.v3.ncrunchproject @@ -1,8 +1,5 @@  - - TargetFramework = net8.0-android34.0 - True \ No newline at end of file diff --git a/.ncrunch/SafeAreaDemo.Desktop.v3.ncrunchproject b/.ncrunch/SafeAreaDemo.Desktop.v3.ncrunchproject index 3b82c33f1c..319cd523ce 100644 --- a/.ncrunch/SafeAreaDemo.Desktop.v3.ncrunchproject +++ b/.ncrunch/SafeAreaDemo.Desktop.v3.ncrunchproject @@ -1,8 +1,5 @@  - - TargetFramework = net8.0 - True \ No newline at end of file diff --git a/.ncrunch/SafeAreaDemo.iOS.v3.ncrunchproject b/.ncrunch/SafeAreaDemo.iOS.v3.ncrunchproject index 6ae5567f23..319cd523ce 100644 --- a/.ncrunch/SafeAreaDemo.iOS.v3.ncrunchproject +++ b/.ncrunch/SafeAreaDemo.iOS.v3.ncrunchproject @@ -1,8 +1,5 @@  - - TargetFramework = net8.0-ios17.0 - True \ No newline at end of file diff --git a/.ncrunch/SafeAreaDemo.v3.ncrunchproject b/.ncrunch/SafeAreaDemo.v3.ncrunchproject index 3b82c33f1c..319cd523ce 100644 --- a/.ncrunch/SafeAreaDemo.v3.ncrunchproject +++ b/.ncrunch/SafeAreaDemo.v3.ncrunchproject @@ -1,8 +1,5 @@  - - TargetFramework = net8.0 - True \ No newline at end of file diff --git a/.ncrunch/Sandbox.v3.ncrunchproject b/.ncrunch/Sandbox.v3.ncrunchproject index 3b82c33f1c..319cd523ce 100644 --- a/.ncrunch/Sandbox.v3.ncrunchproject +++ b/.ncrunch/Sandbox.v3.ncrunchproject @@ -1,8 +1,5 @@  - - TargetFramework = net8.0 - True \ No newline at end of file diff --git a/.ncrunch/SingleProjectSandbox.v3.ncrunchproject b/.ncrunch/SingleProjectSandbox.v3.ncrunchproject deleted file mode 100644 index 3b82c33f1c..0000000000 --- a/.ncrunch/SingleProjectSandbox.v3.ncrunchproject +++ /dev/null @@ -1,8 +0,0 @@ - - - - TargetFramework = net8.0 - - True - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.Headless.NUnit.netstandard2.0.v3.ncrunchproject b/.ncrunch/TextTestApp.v3.ncrunchproject similarity index 100% rename from .ncrunch/Avalonia.Headless.NUnit.netstandard2.0.v3.ncrunchproject rename to .ncrunch/TextTestApp.v3.ncrunchproject diff --git a/.ncrunch/UnloadableAssemblyLoadContext.v3.ncrunchproject b/.ncrunch/UnloadableAssemblyLoadContext.v3.ncrunchproject deleted file mode 100644 index f074de260d..0000000000 --- a/.ncrunch/UnloadableAssemblyLoadContext.v3.ncrunchproject +++ /dev/null @@ -1,8 +0,0 @@ - - - - TargetFramework = net7.0 - - True - - \ No newline at end of file diff --git a/.ncrunch/UnloadableAssemblyLoadContextPlug.v3.ncrunchproject b/.ncrunch/UnloadableAssemblyLoadContextPlug.v3.ncrunchproject deleted file mode 100644 index f074de260d..0000000000 --- a/.ncrunch/UnloadableAssemblyLoadContextPlug.v3.ncrunchproject +++ /dev/null @@ -1,8 +0,0 @@ - - - - TargetFramework = net7.0 - - True - - \ No newline at end of file diff --git a/.ncrunch/VirtualizationDemo.v3.ncrunchproject b/.ncrunch/VirtualizationDemo.v3.ncrunchproject index 3b82c33f1c..319cd523ce 100644 --- a/.ncrunch/VirtualizationDemo.v3.ncrunchproject +++ b/.ncrunch/VirtualizationDemo.v3.ncrunchproject @@ -1,8 +1,5 @@  - - TargetFramework = net8.0 - True \ No newline at end of file diff --git a/.ncrunch/WindowsInteropTest.v3.ncrunchproject b/.ncrunch/WindowsInteropTest.v3.ncrunchproject index 484445df0e..319cd523ce 100644 --- a/.ncrunch/WindowsInteropTest.v3.ncrunchproject +++ b/.ncrunch/WindowsInteropTest.v3.ncrunchproject @@ -1,8 +1,5 @@  - - TargetFramework = net8.0-windows - True \ No newline at end of file diff --git a/.ncrunch/XEmbedSample.net8.0.v3.ncrunchproject b/.ncrunch/XEmbedSample.net8.0.v3.ncrunchproject deleted file mode 100644 index 319cd523ce..0000000000 --- a/.ncrunch/XEmbedSample.net8.0.v3.ncrunchproject +++ /dev/null @@ -1,5 +0,0 @@ - - - True - - \ No newline at end of file diff --git a/.ncrunch/XEmbedSample.netstandard2.0.v3.ncrunchproject b/.ncrunch/XEmbedSample.netstandard2.0.v3.ncrunchproject deleted file mode 100644 index 319cd523ce..0000000000 --- a/.ncrunch/XEmbedSample.netstandard2.0.v3.ncrunchproject +++ /dev/null @@ -1,5 +0,0 @@ - - - True - - \ No newline at end of file diff --git a/.ncrunch/Avalonia.Headless.XUnit.netstandard2.0.v3.ncrunchproject b/.ncrunch/XEmbedSample.v3.ncrunchproject similarity index 100% rename from .ncrunch/Avalonia.Headless.XUnit.netstandard2.0.v3.ncrunchproject rename to .ncrunch/XEmbedSample.v3.ncrunchproject diff --git a/.ncrunch/_build.v3.ncrunchproject b/.ncrunch/_build.v3.ncrunchproject index 3b82c33f1c..319cd523ce 100644 --- a/.ncrunch/_build.v3.ncrunchproject +++ b/.ncrunch/_build.v3.ncrunchproject @@ -1,8 +1,5 @@  - - TargetFramework = net8.0 - True \ No newline at end of file diff --git a/.nuke/build.schema.json b/.nuke/build.schema.json index 4107d5b1fc..e91aa1433c 100644 --- a/.nuke/build.schema.json +++ b/.nuke/build.schema.json @@ -35,6 +35,7 @@ "CreateNugetPackages", "DownloadApiBaselinePackages", "GenerateCppHeaders", + "InitDnx", "OutputApiDiff", "OutputVersion", "Package", diff --git a/Avalonia.Desktop.slnf b/Avalonia.Desktop.slnf index 2b99dc87e9..b861cf00c5 100644 --- a/Avalonia.Desktop.slnf +++ b/Avalonia.Desktop.slnf @@ -1,4 +1,4 @@ -{ +{ "solution": { "path": "Avalonia.sln", "projects": [ @@ -22,7 +22,6 @@ "src\\Avalonia.Controls\\Avalonia.Controls.csproj", "src\\Avalonia.DesignerSupport\\Avalonia.DesignerSupport.csproj", "src\\Avalonia.Desktop\\Avalonia.Desktop.csproj", - "src\\Avalonia.Diagnostics\\Avalonia.Diagnostics.csproj", "src\\Avalonia.Dialogs\\Avalonia.Dialogs.csproj", "src\\Avalonia.Fonts.Inter\\Avalonia.Fonts.Inter.csproj", "src\\Avalonia.FreeDesktop\\Avalonia.FreeDesktop.csproj", @@ -35,6 +34,7 @@ "src\\Avalonia.Themes.Fluent\\Avalonia.Themes.Fluent.csproj", "src\\Avalonia.Themes.Simple\\Avalonia.Themes.Simple.csproj", "src\\Avalonia.X11\\Avalonia.X11.csproj", + "src\\HarfBuzz\\Avalonia.HarfBuzz\\Avalonia.HarfBuzz.csproj", "src\\Headless\\Avalonia.Headless.Vnc\\Avalonia.Headless.Vnc.csproj", "src\\Headless\\Avalonia.Headless\\Avalonia.Headless.csproj", "src\\Linux\\Avalonia.LinuxFramebuffer\\Avalonia.LinuxFramebuffer.csproj", @@ -42,7 +42,9 @@ "src\\Markup\\Avalonia.Markup.Xaml\\Avalonia.Markup.Xaml.csproj", "src\\Markup\\Avalonia.Markup\\Avalonia.Markup.csproj", "src\\Skia\\Avalonia.Skia\\Avalonia.Skia.csproj", - "src\\tools\\Avalonia.Analyzers\\Avalonia.Analyzers.csproj", + "src\\tools\\Avalonia.Analyzers.CodeFixes.CSharp\\Avalonia.Analyzers.CodeFixes.CSharp.csproj", + "src\\tools\\Avalonia.Analyzers.CSharp\\Avalonia.Analyzers.CSharp.csproj", + "src\\tools\\Avalonia.Analyzers.VisualBasic\\Avalonia.Analyzers.VisualBasic.csproj", "src\\tools\\Avalonia.Generators\\Avalonia.Generators.csproj", "src\\tools\\DevAnalyzers\\DevAnalyzers.csproj", "src\\tools\\DevGenerators\\DevGenerators.csproj", diff --git a/Avalonia.sln b/Avalonia.sln index 663f8c3319..06c3e051ac 100644 --- a/Avalonia.sln +++ b/Avalonia.sln @@ -13,8 +13,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Controls", "src\Av EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Themes.Simple", "src\Avalonia.Themes.Simple\Avalonia.Themes.Simple.csproj", "{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Diagnostics", "src\Avalonia.Diagnostics\Avalonia.Diagnostics.csproj", "{7062AE20-5DCC-4442-9645-8195BDECE63E}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Controls.UnitTests", "tests\Avalonia.Controls.UnitTests\Avalonia.Controls.UnitTests.csproj", "{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}" @@ -36,8 +34,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared", "Shared", "{A689DE src\Shared\IsExternalInit.cs = src\Shared\IsExternalInit.cs src\Shared\ModuleInitializer.cs = src\Shared\ModuleInitializer.cs src\Shared\SourceGeneratorAttributes.cs = src\Shared\SourceGeneratorAttributes.cs - src\Shared\StringCompatibilityExtensions.cs = src\Shared\StringCompatibilityExtensions.cs src\Shared\StreamCompatibilityExtensions.cs = src\Shared\StreamCompatibilityExtensions.cs + src\Shared\StringCompatibilityExtensions.cs = src\Shared\StringCompatibilityExtensions.cs EndProjectSection EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Markup", "src\Markup\Avalonia.Markup\Avalonia.Markup.csproj", "{6417E941-21BC-467B-A771-0DE389353CE6}" @@ -82,6 +80,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Skia", "src\Skia\A EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Props", "Props", "{F3AC8BC1-27F5-4255-9AFC-04ABFD11683A}" ProjectSection(SolutionItems) = preProject + build\AnalyzerProject.targets = build\AnalyzerProject.targets build\AvaloniaPublicKey.props = build\AvaloniaPublicKey.props build\Base.props = build\Base.props build\Binding.props = build\Binding.props @@ -107,9 +106,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Props", "Props", "{F3AC8BC1 build\TargetFrameworks.props = build\TargetFrameworks.props build\TrimmingEnable.props = build\TrimmingEnable.props build\UnitTests.NetFX.props = build\UnitTests.NetFX.props - build\WarnAsErrors.props = build\WarnAsErrors.props build\XUnit.props = build\XUnit.props - build\AnalyzerProject.targets = build\AnalyzerProject.targets EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Targets", "Targets", "{4D6FAF79-58B4-482F-9122-0668C346364C}" @@ -206,7 +203,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ControlCatalog.Browser", "s EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GpuInterop", "samples\GpuInterop\GpuInterop.csproj", "{C810060E-3809-4B74-A125-F11533AF9C1B}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Analyzers", "src\tools\Avalonia.Analyzers\Avalonia.Analyzers.csproj", "{C692FE73-43DB-49CE-87FC-F03ED61F25C9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Analyzers.CSharp", "src\tools\Avalonia.Analyzers.CSharp\Avalonia.Analyzers.CSharp.csproj", "{C692FE73-43DB-49CE-87FC-F03ED61F25C9}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{176582E8-46AF-416A-85C1-13A5C6744497}" ProjectSection(SolutionItems) = preProject @@ -277,6 +274,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ControlCatalog.MacCatalyst" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ControlCatalog.tvOS", "samples\ControlCatalog.tvOS\ControlCatalog.tvOS.csproj", "{14342787-B4EF-4076-8C91-BA6C523DE8DF}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HarfBuzz", "HarfBuzz", "{7670D720-6E84-4AFC-8331-A5C399481905}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.HarfBuzz", "src\HarfBuzz\Avalonia.HarfBuzz\Avalonia.HarfBuzz.csproj", "{E2BFA463-6402-4EF8-8945-FD9A10A914D1}" +EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Headless.NUnit.PerAssembly.UnitTests", "tests\Avalonia.Headless.NUnit.PerAssembly.UnitTests\Avalonia.Headless.NUnit.PerAssembly.UnitTests.csproj", "{A175EFAE-476C-4DAA-87D5-742C18CFCC27}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Headless.NUnit.PerTest.UnitTests", "tests\Avalonia.Headless.NUnit.PerTest.UnitTests\Avalonia.Headless.NUnit.PerTest.UnitTests.csproj", "{09EC467F-0F25-4E6F-A836-2BAEC8F6AB0C}" @@ -287,6 +288,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Headless.XUnit.Per EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.IntegrationTests.Win32", "tests\Avalonia.IntegrationTests.Win32\Avalonia.IntegrationTests.Win32.csproj", "{11522B0D-BF31-42D5-8FC5-41E58F319AF9}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Analyzers.CodeFixes.CSharp", "src\tools\Avalonia.Analyzers.CodeFixes.CSharp\Avalonia.Analyzers.CodeFixes.CSharp.csproj", "{FDFB9C25-552D-420B-9D4A-DB0BB6472239}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Analyzers.VisualBasic", "src\tools\Avalonia.Analyzers.VisualBasic\Avalonia.Analyzers.VisualBasic.csproj", "{A7644C3B-B843-44F1-9940-560D56CB0936}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -309,10 +314,6 @@ Global {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Debug|Any CPU.Build.0 = Debug|Any CPU {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Release|Any CPU.ActiveCfg = Release|Any CPU {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Release|Any CPU.Build.0 = Release|Any CPU - {7062AE20-5DCC-4442-9645-8195BDECE63E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7062AE20-5DCC-4442-9645-8195BDECE63E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7062AE20-5DCC-4442-9645-8195BDECE63E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7062AE20-5DCC-4442-9645-8195BDECE63E}.Release|Any CPU.Build.0 = Release|Any CPU {5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Debug|Any CPU.Build.0 = Debug|Any CPU {5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -645,6 +646,10 @@ Global {14342787-B4EF-4076-8C91-BA6C523DE8DF}.Debug|Any CPU.Build.0 = Debug|Any CPU {14342787-B4EF-4076-8C91-BA6C523DE8DF}.Release|Any CPU.ActiveCfg = Release|Any CPU {14342787-B4EF-4076-8C91-BA6C523DE8DF}.Release|Any CPU.Build.0 = Release|Any CPU + {E2BFA463-6402-4EF8-8945-FD9A10A914D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E2BFA463-6402-4EF8-8945-FD9A10A914D1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E2BFA463-6402-4EF8-8945-FD9A10A914D1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E2BFA463-6402-4EF8-8945-FD9A10A914D1}.Release|Any CPU.Build.0 = Release|Any CPU {A175EFAE-476C-4DAA-87D5-742C18CFCC27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A175EFAE-476C-4DAA-87D5-742C18CFCC27}.Debug|Any CPU.Build.0 = Debug|Any CPU {A175EFAE-476C-4DAA-87D5-742C18CFCC27}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -665,6 +670,14 @@ Global {11522B0D-BF31-42D5-8FC5-41E58F319AF9}.Debug|Any CPU.Build.0 = Debug|Any CPU {11522B0D-BF31-42D5-8FC5-41E58F319AF9}.Release|Any CPU.ActiveCfg = Release|Any CPU {11522B0D-BF31-42D5-8FC5-41E58F319AF9}.Release|Any CPU.Build.0 = Release|Any CPU + {A7644C3B-B843-44F1-9940-560D56CB0936}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A7644C3B-B843-44F1-9940-560D56CB0936}.Release|Any CPU.Build.0 = Release|Any CPU + {A7644C3B-B843-44F1-9940-560D56CB0936}.Debug|Any CPU.ActiveCfg = Release|Any CPU + {A7644C3B-B843-44F1-9940-560D56CB0936}.Debug|Any CPU.Build.0 = Release|Any CPU + {FDFB9C25-552D-420B-9D4A-DB0BB6472239}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FDFB9C25-552D-420B-9D4A-DB0BB6472239}.Release|Any CPU.Build.0 = Release|Any CPU + {FDFB9C25-552D-420B-9D4A-DB0BB6472239}.Debug|Any CPU.ActiveCfg = Release|Any CPU + {FDFB9C25-552D-420B-9D4A-DB0BB6472239}.Debug|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -744,11 +757,14 @@ Global {255614F5-CB64-4ECA-A026-E0B1AF6A2EF4} = {9B9E3891-2366-4253-A952-D08BCEB71098} {DE3C28DD-B602-4750-831D-345102A54CA0} = {9B9E3891-2366-4253-A952-D08BCEB71098} {14342787-B4EF-4076-8C91-BA6C523DE8DF} = {9B9E3891-2366-4253-A952-D08BCEB71098} + {E2BFA463-6402-4EF8-8945-FD9A10A914D1} = {7670D720-6E84-4AFC-8331-A5C399481905} {A175EFAE-476C-4DAA-87D5-742C18CFCC27} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} {09EC467F-0F25-4E6F-A836-2BAEC8F6AB0C} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} {342D2657-2F84-493C-B74B-9D2CAE5D9DAB} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} {26918642-829D-4FA2-B60A-BE8D83F4E063} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} {11522B0D-BF31-42D5-8FC5-41E58F319AF9} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B} + {A7644C3B-B843-44F1-9940-560D56CB0936} = {4ED8B739-6F4E-4CD4-B993-545E6B5CE637} + {FDFB9C25-552D-420B-9D4A-DB0BB6472239} = {4ED8B739-6F4E-4CD4-B993-545E6B5CE637} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {87366D66-1391-4D90-8999-95A620AD786A} diff --git a/Avalonia.v3.ncrunchsolution b/Avalonia.v3.ncrunchsolution index 95f316f8cf..f675b66f7b 100644 --- a/Avalonia.v3.ncrunchsolution +++ b/Avalonia.v3.ncrunchsolution @@ -10,9 +10,10 @@ True RunApiCompat = false - TargetFrameworks = net8.0;netstandard2.0 + TargetFrameworks = net10.0 False + True .ncrunch True True diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index fde2931bf9..51c5c72372 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -25,6 +25,9 @@ community include: and learning from the experience * Focusing on what is best not just for us as individuals, but for the overall community +* Respecting that contributors and maintainers have invested significant effort in building this project +* Keeping discussions focused on improving Avalonia and its ecosystem +* When discussing alternatives, doing so with relevant technical context that advances the conversation Examples of unacceptable behavior include: @@ -36,6 +39,9 @@ Examples of unacceptable behavior include: address, without their explicit permission * Other conduct which could reasonably be considered inappropriate in a professional setting +* Repeated unsolicited promotion, recruitment, or calls to action for external projects, products, or services in Avalonia’s official channels, particularly when it derails technical discussion or continues after redirection +* Using Avalonia’s official channels to organise or coordinate work for unrelated projects rather than collaborating on Avalonia +* Posting promotional content primarily to drive traffic, sales, or contributors, rather than to contribute to the topic at hand ## Enforcement Responsibilities @@ -44,6 +50,8 @@ acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful. +Avalonia’s official infrastructure exists to support Avalonia’s development and community. Constructive technical criticism and relevant comparisons are welcome. What is not welcome is repeated promotional activity, recruitment, or organising unrelated projects within Avalonia’s official channels. + Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation @@ -72,6 +80,13 @@ reporter of any incident. Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct: +### Specific Guidance: Infrastructure Misuse and Promotion +**Community Impact:** A pattern of using Avalonia’s official channels primarily to promote external projects, products, or services, recruit contributors, or coordinate unrelated work, especially where it derails ongoing technical discussion or continues after a moderator request to stop. + +**Consequence:** Moderators will remove promotional content immediately to keep discussions focused. If the behaviour appears unintentional or isolated, moderators will follow up privately with guidance and redirect to appropriate venues (e.g., AvaloniaCommunity org, personal blogs). Repeated violations after guidance will result in a formal warning and, if continued, restriction from project platforms up to and including a permanent ban. + +*Note: This guidance addresses patterns of disruption and misuse of shared channels. It does not prohibit technical criticism, benchmarks, or mentioning alternatives when relevant and explained with technical context.* + ### 1. Correction **Community Impact**: Use of inappropriate language or other behavior deemed @@ -106,9 +121,7 @@ Violating these terms may lead to a permanent ban. ### 4. Permanent Ban -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. +**Community Impact:** Demonstrating a pattern of violation of community standards, including sustained inappropriate behaviour, harassment of an individual, aggression towards or disparagement of classes of individuals, or persistent misuse of project infrastructure after warnings. **Consequence**: A permanent ban from any sort of public interaction within the community. diff --git a/Directory.Build.props b/Directory.Build.props index 4498f87dab..400198daf9 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,17 +1,18 @@ - - $(MSBuildThisFileDirectory)build-intermediate/nuget - $(MSBuildThisFileDirectory)\src\tools\Avalonia.Designer.HostApp\bin\$(Configuration)\$(AvsCurrentTargetFramework)\Avalonia.Designer.HostApp.dll - - false - False - 14.0 - true - true - true - true + $(MSBuildThisFileDirectory)build-intermediate/nuget + $(MSBuildThisFileDirectory)\src\tools\Avalonia.Designer.HostApp\bin\$(Configuration)\$(AvsCurrentTargetFramework)\Avalonia.Designer.HostApp.dll + + false + False + 14.0 + $(AvnTreatWarningsAsErrors) + true + true + true + true + true diff --git a/api/Avalonia.Android.nupkg.xml b/api/Avalonia.Android.nupkg.xml new file mode 100644 index 0000000000..6ffd08efe1 --- /dev/null +++ b/api/Avalonia.Android.nupkg.xml @@ -0,0 +1,22 @@ + + + + + CP0001 + T:Avalonia.Android.Platform.Specific.IAndroidView + baseline/Avalonia.Android/lib/net10.0-android36.0/Avalonia.Android.dll + current/Avalonia.Android/lib/net10.0-android36.0/Avalonia.Android.dll + + + CP0008 + T:Avalonia.Android.AvaloniaActivity + baseline/Avalonia.Android/lib/net10.0-android36.0/Avalonia.Android.dll + current/Avalonia.Android/lib/net10.0-android36.0/Avalonia.Android.dll + + + CP0008 + T:Avalonia.Android.AvaloniaMainActivity + baseline/Avalonia.Android/lib/net10.0-android36.0/Avalonia.Android.dll + current/Avalonia.Android/lib/net10.0-android36.0/Avalonia.Android.dll + + diff --git a/api/Avalonia.Headless.XUnit.nupkg.xml b/api/Avalonia.Headless.XUnit.nupkg.xml new file mode 100644 index 0000000000..c87cf909fe --- /dev/null +++ b/api/Avalonia.Headless.XUnit.nupkg.xml @@ -0,0 +1,76 @@ + + + + + CP0001 + T:Avalonia.Headless.XUnit.AvaloniaTestFrameworkTypeDiscoverer + baseline/Avalonia.Headless.XUnit/lib/net10.0/Avalonia.Headless.XUnit.dll + current/Avalonia.Headless.XUnit/lib/net10.0/Avalonia.Headless.XUnit.dll + + + CP0001 + T:Avalonia.Headless.XUnit.AvaloniaUIFactDiscoverer + baseline/Avalonia.Headless.XUnit/lib/net10.0/Avalonia.Headless.XUnit.dll + current/Avalonia.Headless.XUnit/lib/net10.0/Avalonia.Headless.XUnit.dll + + + CP0001 + T:Avalonia.Headless.XUnit.AvaloniaTestFrameworkTypeDiscoverer + baseline/Avalonia.Headless.XUnit/lib/net8.0/Avalonia.Headless.XUnit.dll + current/Avalonia.Headless.XUnit/lib/net8.0/Avalonia.Headless.XUnit.dll + + + CP0001 + T:Avalonia.Headless.XUnit.AvaloniaUIFactDiscoverer + baseline/Avalonia.Headless.XUnit/lib/net8.0/Avalonia.Headless.XUnit.dll + current/Avalonia.Headless.XUnit/lib/net8.0/Avalonia.Headless.XUnit.dll + + + CP0002 + M:Avalonia.Headless.XUnit.AvaloniaFactAttribute.#ctor + baseline/Avalonia.Headless.XUnit/lib/net10.0/Avalonia.Headless.XUnit.dll + current/Avalonia.Headless.XUnit/lib/net10.0/Avalonia.Headless.XUnit.dll + + + CP0002 + M:Avalonia.Headless.XUnit.AvaloniaTheoryDiscoverer.#ctor(Xunit.Abstractions.IMessageSink) + baseline/Avalonia.Headless.XUnit/lib/net10.0/Avalonia.Headless.XUnit.dll + current/Avalonia.Headless.XUnit/lib/net10.0/Avalonia.Headless.XUnit.dll + + + CP0002 + M:Avalonia.Headless.XUnit.AvaloniaFactAttribute.#ctor + baseline/Avalonia.Headless.XUnit/lib/net8.0/Avalonia.Headless.XUnit.dll + current/Avalonia.Headless.XUnit/lib/net8.0/Avalonia.Headless.XUnit.dll + + + CP0002 + M:Avalonia.Headless.XUnit.AvaloniaTheoryDiscoverer.#ctor(Xunit.Abstractions.IMessageSink) + baseline/Avalonia.Headless.XUnit/lib/net8.0/Avalonia.Headless.XUnit.dll + current/Avalonia.Headless.XUnit/lib/net8.0/Avalonia.Headless.XUnit.dll + + + CP0007 + T:Avalonia.Headless.XUnit.AvaloniaTheoryDiscoverer + baseline/Avalonia.Headless.XUnit/lib/net10.0/Avalonia.Headless.XUnit.dll + current/Avalonia.Headless.XUnit/lib/net10.0/Avalonia.Headless.XUnit.dll + + + CP0007 + T:Avalonia.Headless.XUnit.AvaloniaTheoryDiscoverer + baseline/Avalonia.Headless.XUnit/lib/net8.0/Avalonia.Headless.XUnit.dll + current/Avalonia.Headless.XUnit/lib/net8.0/Avalonia.Headless.XUnit.dll + + + CP0008 + T:Avalonia.Headless.XUnit.AvaloniaTestFrameworkAttribute + baseline/Avalonia.Headless.XUnit/lib/net10.0/Avalonia.Headless.XUnit.dll + current/Avalonia.Headless.XUnit/lib/net10.0/Avalonia.Headless.XUnit.dll + + + CP0008 + T:Avalonia.Headless.XUnit.AvaloniaTestFrameworkAttribute + baseline/Avalonia.Headless.XUnit/lib/net8.0/Avalonia.Headless.XUnit.dll + current/Avalonia.Headless.XUnit/lib/net8.0/Avalonia.Headless.XUnit.dll + + diff --git a/api/Avalonia.Headless.nupkg.xml b/api/Avalonia.Headless.nupkg.xml new file mode 100644 index 0000000000..229047057a --- /dev/null +++ b/api/Avalonia.Headless.nupkg.xml @@ -0,0 +1,40 @@ + + + + + CP0002 + M:Avalonia.Headless.HeadlessWindowExtensions.DragDrop(Avalonia.Controls.TopLevel,Avalonia.Point,Avalonia.Input.Raw.RawDragEventType,Avalonia.Input.IDataObject,Avalonia.Input.DragDropEffects,Avalonia.Input.RawInputModifiers) + baseline/Avalonia.Headless/lib/net10.0/Avalonia.Headless.dll + current/Avalonia.Headless/lib/net10.0/Avalonia.Headless.dll + + + CP0002 + M:Avalonia.Headless.HeadlessWindowExtensions.KeyPress(Avalonia.Controls.TopLevel,Avalonia.Input.Key,Avalonia.Input.RawInputModifiers) + baseline/Avalonia.Headless/lib/net10.0/Avalonia.Headless.dll + current/Avalonia.Headless/lib/net10.0/Avalonia.Headless.dll + + + CP0002 + M:Avalonia.Headless.HeadlessWindowExtensions.KeyRelease(Avalonia.Controls.TopLevel,Avalonia.Input.Key,Avalonia.Input.RawInputModifiers) + baseline/Avalonia.Headless/lib/net10.0/Avalonia.Headless.dll + current/Avalonia.Headless/lib/net10.0/Avalonia.Headless.dll + + + CP0002 + M:Avalonia.Headless.HeadlessWindowExtensions.DragDrop(Avalonia.Controls.TopLevel,Avalonia.Point,Avalonia.Input.Raw.RawDragEventType,Avalonia.Input.IDataObject,Avalonia.Input.DragDropEffects,Avalonia.Input.RawInputModifiers) + baseline/Avalonia.Headless/lib/net8.0/Avalonia.Headless.dll + current/Avalonia.Headless/lib/net8.0/Avalonia.Headless.dll + + + CP0002 + M:Avalonia.Headless.HeadlessWindowExtensions.KeyPress(Avalonia.Controls.TopLevel,Avalonia.Input.Key,Avalonia.Input.RawInputModifiers) + baseline/Avalonia.Headless/lib/net8.0/Avalonia.Headless.dll + current/Avalonia.Headless/lib/net8.0/Avalonia.Headless.dll + + + CP0002 + M:Avalonia.Headless.HeadlessWindowExtensions.KeyRelease(Avalonia.Controls.TopLevel,Avalonia.Input.Key,Avalonia.Input.RawInputModifiers) + baseline/Avalonia.Headless/lib/net8.0/Avalonia.Headless.dll + current/Avalonia.Headless/lib/net8.0/Avalonia.Headless.dll + + diff --git a/api/Avalonia.Skia.nupkg.xml b/api/Avalonia.Skia.nupkg.xml new file mode 100644 index 0000000000..eda59fc334 --- /dev/null +++ b/api/Avalonia.Skia.nupkg.xml @@ -0,0 +1,28 @@ + + + + + CP0008 + T:Avalonia.Skia.ISkiaGpu + baseline/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll + current/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll + + + CP0008 + T:Avalonia.Skia.ISkiaGpuWithPlatformGraphicsContext + baseline/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll + current/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll + + + CP0008 + T:Avalonia.Skia.ISkiaGpu + baseline/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll + current/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll + + + CP0008 + T:Avalonia.Skia.ISkiaGpuWithPlatformGraphicsContext + baseline/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll + current/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll + + diff --git a/api/Avalonia.nupkg.xml b/api/Avalonia.nupkg.xml index 84a9f4b163..1c9ac0d5e9 100644 --- a/api/Avalonia.nupkg.xml +++ b/api/Avalonia.nupkg.xml @@ -1,12 +1,204 @@ - + + + CP0001 + T:Avalonia.Animation.CustomAnimatorBase + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Animation.CustomAnimatorBase`1 + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Animation.Easings.CubicBezierEasing + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Controls.Primitives.IScrollable + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Diagnostics.AppliedStyle + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Diagnostics.StyledElementExtensions + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Diagnostics.StyleDiagnostics + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Input.DataObjectExtensions + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Input.IDataObject + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + CP0001 T:Avalonia.Media.Fonts.FontFamilyLoader baseline/Avalonia/lib/net10.0/Avalonia.Base.dll current/Avalonia/lib/net10.0/Avalonia.Base.dll + + CP0001 + T:Avalonia.Platform.IGeometryContext2 + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Platform.IOptionalFeatureProvider + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Platform.IReadableBitmapWithAlphaImpl + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Platform.OptionalFeatureProviderExtensions + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Styling.IStyleable + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Utilities.StringTokenizer + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Controls.ApplicationLifetimes.ClassicDesktopStyleApplicationLifetimeOptions + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.ApplicationLifetimes.IActivatableApplicationLifetime + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.AutoCompleteBox.BindingEvaluator`1 + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.FileDialog + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.FileDialogFilter + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.FileSystemDialog + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.Generators.TreeContainerIndex + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.Generators.TreeItemContainerGenerator + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.NativeMenuItemToggleType + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.OpenFileDialog + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.OpenFolderDialog + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.Platform.ISystemDialogImpl + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.Primitives.IScrollable + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.SaveFileDialog + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.SystemDialog + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Platform.IApplicationPlatformEvents + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Markup.Xaml.ConstructorArgumentAttribute + baseline/Avalonia/lib/net10.0/Avalonia.Markup.Xaml.dll + current/Avalonia/lib/net10.0/Avalonia.Markup.Xaml.dll + CP0001 T:Avalonia.Media.Fonts.FontFamilyLoader @@ -14,260 +206,1910 @@ current/Avalonia/lib/net6.0/Avalonia.Base.dll - CP0001 - T:Avalonia.Media.Fonts.FontFamilyLoader - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll + CP0001 + T:Avalonia.Animation.CustomAnimatorBase + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Animation.CustomAnimatorBase`1 + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Animation.Easings.CubicBezierEasing + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Controls.Primitives.IScrollable + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Diagnostics.AppliedStyle + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Diagnostics.StyledElementExtensions + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Diagnostics.StyleDiagnostics + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Input.DataObjectExtensions + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Input.IDataObject + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Media.Fonts.FontFamilyLoader + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Platform.IGeometryContext2 + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Platform.IOptionalFeatureProvider + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Platform.IReadableBitmapWithAlphaImpl + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Platform.OptionalFeatureProviderExtensions + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Styling.IStyleable + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Utilities.StringTokenizer + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0001 + T:Avalonia.Controls.ApplicationLifetimes.ClassicDesktopStyleApplicationLifetimeOptions + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.ApplicationLifetimes.IActivatableApplicationLifetime + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.AutoCompleteBox.BindingEvaluator`1 + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.FileDialog + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.FileDialogFilter + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.FileSystemDialog + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.Generators.TreeContainerIndex + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.Generators.TreeItemContainerGenerator + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.NativeMenuItemToggleType + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.OpenFileDialog + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.OpenFolderDialog + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.Platform.ISystemDialogImpl + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.Primitives.IScrollable + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.SaveFileDialog + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Controls.SystemDialog + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Platform.IApplicationPlatformEvents + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0001 + T:Avalonia.Markup.Xaml.ConstructorArgumentAttribute + baseline/Avalonia/lib/net8.0/Avalonia.Markup.Xaml.dll + current/Avalonia/lib/net8.0/Avalonia.Markup.Xaml.dll + + + CP0001 + T:Avalonia.Media.Fonts.FontFamilyLoader + baseline/Avalonia/lib/netstandard2.0/Avalonia.Base.dll + current/Avalonia/lib/netstandard2.0/Avalonia.Base.dll + + + CP0002 + F:Avalonia.Controls.ResourcesChangedEventArgs.Empty + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + F:Avalonia.Data.BindingPriority.TemplatedParent + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + F:Avalonia.Input.DataFormats.FileNames + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + F:Avalonia.Input.DataFormats.Files + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + F:Avalonia.Input.DataFormats.Text + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + F:Avalonia.Media.DrawingImage.ViewboxProperty + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + F:Avalonia.Media.Fonts.FontCollectionBase._glyphTypefaceCache + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + F:Avalonia.Media.RadialGradientBrush.RadiusProperty + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Animation.Animation.SetAnimator(Avalonia.Animation.IAnimationSetter,Avalonia.Animation.CustomAnimatorBase) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.AvaloniaObjectExtensions.Bind(Avalonia.AvaloniaObject,Avalonia.AvaloniaProperty,Avalonia.Data.BindingBase,System.Object) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Controls.ResourcesChangedEventArgs.#ctor + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Data.CompiledBindingPathBuilder.SetRawSource(System.Object) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Data.ReflectionBinding.#ctor(System.String,Avalonia.Data.BindingMode) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.DataObject.Contains(System.String) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.DataObject.Get(System.String) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.DataObject.GetDataFormats + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.DataObject.Set(System.String,System.Object) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.DragDrop.DoDragDrop(Avalonia.Input.PointerEventArgs,Avalonia.Input.IDataObject,Avalonia.Input.DragDropEffects) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.DragEventArgs.#ctor(Avalonia.Interactivity.RoutedEvent{Avalonia.Input.DragEventArgs},Avalonia.Input.IDataObject,Avalonia.Interactivity.Interactive,Avalonia.Point,Avalonia.Input.KeyModifiers) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.DragEventArgs.get_Data + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.IKeyboardNavigationHandler.Move(Avalonia.Input.IInputElement,Avalonia.Input.NavigationDirection,Avalonia.Input.KeyModifiers) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.KeyboardNavigationHandler.Move(Avalonia.Input.IInputElement,Avalonia.Input.NavigationDirection,Avalonia.Input.KeyModifiers) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.Platform.IClipboard.GetDataAsync(System.String) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.Platform.IClipboard.GetFormatsAsync + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.Platform.IClipboard.GetTextAsync + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.Platform.IClipboard.SetDataObjectAsync(Avalonia.Input.IDataObject) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.Platform.IClipboard.SetTextAsync(System.String) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.Platform.IClipboard.TryGetInProcessDataObjectAsync + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.Platform.IPlatformDragSource.DoDragDrop(Avalonia.Input.PointerEventArgs,Avalonia.Input.IDataObject,Avalonia.Input.DragDropEffects) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.Raw.RawDragEvent.#ctor(Avalonia.Input.Raw.IDragDropDevice,Avalonia.Input.Raw.RawDragEventType,Avalonia.Input.IInputRoot,Avalonia.Point,Avalonia.Input.IDataObject,Avalonia.Input.DragDropEffects,Avalonia.Input.RawInputModifiers) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.Raw.RawDragEvent.get_Data + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.Raw.RawKeyEventArgs.#ctor(Avalonia.Input.IInputDevice,System.UInt64,Avalonia.Input.IInputRoot,Avalonia.Input.Raw.RawKeyEventType,Avalonia.Input.Key,Avalonia.Input.RawInputModifiers,Avalonia.Input.PhysicalKey,Avalonia.Input.KeyDeviceType,System.String) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.Raw.RawKeyEventArgs.#ctor(Avalonia.Input.IInputDevice,System.UInt64,Avalonia.Input.IInputRoot,Avalonia.Input.Raw.RawKeyEventType,Avalonia.Input.Key,Avalonia.Input.RawInputModifiers,Avalonia.Input.PhysicalKey,System.String) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.Raw.RawKeyEventArgs.#ctor(Avalonia.Input.IKeyboardDevice,System.UInt64,Avalonia.Input.IInputRoot,Avalonia.Input.Raw.RawKeyEventType,Avalonia.Input.Key,Avalonia.Input.RawInputModifiers) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.TextInput.TextInputMethodClient.ShowInputPanel + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.Color.ToUint32 + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.DrawingContext.PushPostTransform(Avalonia.Matrix) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.DrawingContext.PushPreTransform(Avalonia.Matrix) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.DrawingContext.PushTransformContainer + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.DrawingImage.get_Viewbox + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.DrawingImage.set_Viewbox(System.Nullable{Avalonia.Rect}) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.Fonts.FontCollectionBase.Initialize(Avalonia.Platform.IFontManagerImpl) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.Fonts.IFontCollection.Initialize(Avalonia.Platform.IFontManagerImpl) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.Imaging.Bitmap.CopyPixels(Avalonia.Platform.ILockedFramebuffer,Avalonia.Platform.AlphaFormat) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.Immutable.ImmutableRadialGradientBrush.get_Radius + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.IRadialGradientBrush.get_Radius + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.RadialGradientBrush.get_Radius + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.RadialGradientBrush.set_Radius(System.Double) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.StreamGeometryContext.ArcTo(Avalonia.Point,Avalonia.Size,System.Double,System.Boolean,Avalonia.Media.SweepDirection) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.StreamGeometryContext.CubicBezierTo(Avalonia.Point,Avalonia.Point,Avalonia.Point) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.StreamGeometryContext.LineTo(Avalonia.Point) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.StreamGeometryContext.QuadraticBezierTo(Avalonia.Point,Avalonia.Point) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.TextFormatting.GenericTextRunProperties.#ctor(Avalonia.Media.Typeface,Avalonia.Media.FontFeatureCollection,System.Double,Avalonia.Media.TextDecorationCollection,Avalonia.Media.IBrush,Avalonia.Media.IBrush,Avalonia.Media.BaselineAlignment,System.Globalization.CultureInfo) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.TextFormatting.GenericTextRunProperties.#ctor(Avalonia.Media.Typeface,System.Double,Avalonia.Media.TextDecorationCollection,Avalonia.Media.IBrush,Avalonia.Media.IBrush,Avalonia.Media.BaselineAlignment,System.Globalization.CultureInfo) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.TextFormatting.TextCollapsingProperties.CreateCollapsedRuns(Avalonia.Media.TextFormatting.TextLine,System.Int32,Avalonia.Media.FlowDirection,Avalonia.Media.TextFormatting.TextRun) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.TextFormatting.TextLayout.#ctor(System.String,Avalonia.Media.Typeface,Avalonia.Media.FontFeatureCollection,System.Double,Avalonia.Media.IBrush,Avalonia.Media.TextAlignment,Avalonia.Media.TextWrapping,Avalonia.Media.TextTrimming,Avalonia.Media.TextDecorationCollection,Avalonia.Media.FlowDirection,System.Double,System.Double,System.Double,System.Double,System.Int32,System.Collections.Generic.IReadOnlyList{Avalonia.Utilities.ValueSpan{Avalonia.Media.TextFormatting.TextRunProperties}}) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.TextFormatting.TextLayout.#ctor(System.String,Avalonia.Media.Typeface,System.Double,Avalonia.Media.IBrush,Avalonia.Media.TextAlignment,Avalonia.Media.TextWrapping,Avalonia.Media.TextTrimming,Avalonia.Media.TextDecorationCollection,Avalonia.Media.FlowDirection,System.Double,System.Double,System.Double,System.Double,System.Int32,System.Collections.Generic.IReadOnlyList{Avalonia.Utilities.ValueSpan{Avalonia.Media.TextFormatting.TextRunProperties}}) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.TextFormatting.TextShaperOptions.#ctor(Avalonia.Media.GlyphTypeface,System.Collections.Generic.IReadOnlyList{Avalonia.Media.FontFeature},System.Double,System.SByte,System.Globalization.CultureInfo,System.Double,System.Double) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.TextFormatting.TextShaperOptions.#ctor(Avalonia.Media.GlyphTypeface,System.Double,System.SByte,System.Globalization.CultureInfo,System.Double,System.Double) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Platform.IDrawingContextImplWithEffects.PushEffect(Avalonia.Media.IEffect) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Platform.IFontManagerImpl.TryMatchCharacter(System.Int32,Avalonia.Media.FontStyle,Avalonia.Media.FontWeight,Avalonia.Media.FontStretch,System.Globalization.CultureInfo,Avalonia.Media.Typeface@) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Platform.IGeometryContext.ArcTo(Avalonia.Point,Avalonia.Size,System.Double,System.Boolean,Avalonia.Media.SweepDirection) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Platform.IGeometryContext.CubicBezierTo(Avalonia.Point,Avalonia.Point,Avalonia.Point) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Platform.IGeometryContext.LineTo(Avalonia.Point) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Platform.IGeometryContext.QuadraticBezierTo(Avalonia.Point,Avalonia.Point) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Platform.IPlatformRenderInterfaceContext.CreateOffscreenRenderTarget(Avalonia.PixelSize,System.Double) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Platform.LockedFramebuffer.#ctor(System.IntPtr,Avalonia.PixelSize,System.Int32,Avalonia.Vector,Avalonia.Platform.PixelFormat,System.Action) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Rendering.Composition.ICompositionGpuImportedObject.get_ImportCompeted + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Utilities.AvaloniaResourcesIndexReaderWriter.WriteResources(System.IO.Stream,System.Collections.Generic.List{System.ValueTuple{System.String,System.Int32,System.Func{System.IO.Stream}}}) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Visuals.Platform.PathGeometryContext.ArcTo(Avalonia.Point,Avalonia.Size,System.Double,System.Boolean,Avalonia.Media.SweepDirection) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Visuals.Platform.PathGeometryContext.CubicBezierTo(Avalonia.Point,Avalonia.Point,Avalonia.Point) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Visuals.Platform.PathGeometryContext.LineTo(Avalonia.Point) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Visuals.Platform.PathGeometryContext.QuadraticBezierTo(Avalonia.Point,Avalonia.Point) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0002 + F:Avalonia.Controls.ContextMenu.PlacementModeProperty + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + F:Avalonia.Controls.Documents.Inline.TextDecorationsProperty + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + F:Avalonia.Controls.NativeMenuBar.EnableMenuItemClickForwardingProperty + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + F:Avalonia.Controls.NativeMenuItem.ToggleTypeProperty + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + F:Avalonia.Controls.Primitives.Popup.PlacementModeProperty + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + F:Avalonia.Controls.Primitives.ToggleButton.CheckedEvent + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + F:Avalonia.Controls.Primitives.ToggleButton.IndeterminateEvent + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + F:Avalonia.Controls.Primitives.ToggleButton.UncheckedEvent + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + F:Avalonia.Controls.TextBlock.LetterSpacingProperty + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + F:Avalonia.Controls.TextBox.LetterSpacingProperty + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.AppBuilder.get_LifetimeOverride + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Application.add_UrlsOpened(System.EventHandler{Avalonia.UrlOpenedEventArgs}) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Application.remove_UrlsOpened(System.EventHandler{Avalonia.UrlOpenedEventArgs}) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.ContextMenu.get_PlacementMode + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.ContextMenu.set_PlacementMode(Avalonia.Controls.PlacementMode) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Design.CreatePreviewWithControl(System.Object) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Design.GetDataContext(Avalonia.Controls.Templates.IDataTemplate) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Design.GetPreviewWith(Avalonia.Controls.Templates.IDataTemplate) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Design.GetPreviewWith(Avalonia.Styling.IStyle) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Design.SetDataContext(Avalonia.Controls.Templates.IDataTemplate,System.Object) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Design.SetPreviewWith(Avalonia.AvaloniaObject,Avalonia.Controls.Control) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Design.SetPreviewWith(Avalonia.AvaloniaObject,Avalonia.Controls.ITemplate{Avalonia.Controls.Control}) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Design.SetPreviewWith(Avalonia.Controls.ResourceDictionary,Avalonia.Controls.ITemplate{Avalonia.Controls.Control}) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Design.SetPreviewWith(Avalonia.Controls.Templates.IDataTemplate,Avalonia.Controls.Control) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Design.SetPreviewWith(Avalonia.Controls.Templates.IDataTemplate,Avalonia.Controls.ITemplate{Avalonia.Controls.Control}) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Design.SetPreviewWith(Avalonia.Styling.IStyle,Avalonia.Controls.Control) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Design.SetPreviewWith(Avalonia.Styling.IStyle,Avalonia.Controls.ITemplate{Avalonia.Controls.Control}) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Generators.ItemContainerGenerator.ContainerFromIndex(System.Int32) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Generators.ItemContainerGenerator.IndexFromContainer(Avalonia.Controls.Control) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.ItemsControl.ItemsControlFromItemContaner(Avalonia.Controls.Control) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.NativeMenuBar.SetEnableMenuItemClickForwarding(Avalonia.Controls.MenuItem,System.Boolean) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.NativeMenuItem.get_ToggleType + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Platform.IInsetsManager.get_DisplayEdgeToEdge + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Platform.IInsetsManager.set_DisplayEdgeToEdge(System.Boolean) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Platform.InsetsManagerBase.get_DisplayEdgeToEdge + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Platform.InsetsManagerBase.set_DisplayEdgeToEdge(System.Boolean) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Primitives.OverlayPopupHost.ConfigurePosition(Avalonia.Visual,Avalonia.Controls.PlacementMode,Avalonia.Point,Avalonia.Controls.Primitives.PopupPositioning.PopupAnchor,Avalonia.Controls.Primitives.PopupPositioning.PopupGravity,Avalonia.Controls.Primitives.PopupPositioning.PopupPositionerConstraintAdjustment,System.Nullable{Avalonia.Rect}) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Primitives.OverlayPopupHost.CreatePopupHost(Avalonia.Visual,Avalonia.IAvaloniaDependencyResolver) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Primitives.Popup.get_PlacementMode + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Primitives.Popup.set_PlacementMode(Avalonia.Controls.PlacementMode) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Primitives.PopupRoot.ConfigurePosition(Avalonia.Visual,Avalonia.Controls.PlacementMode,Avalonia.Point,Avalonia.Controls.Primitives.PopupPositioning.PopupAnchor,Avalonia.Controls.Primitives.PopupPositioning.PopupGravity,Avalonia.Controls.Primitives.PopupPositioning.PopupPositionerConstraintAdjustment,System.Nullable{Avalonia.Rect}) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Primitives.TextSearch.GetText(Avalonia.Controls.Control) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Primitives.TextSearch.SetText(Avalonia.Controls.Control,System.String) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Primitives.ToggleButton.add_Checked(System.EventHandler{Avalonia.Interactivity.RoutedEventArgs}) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Primitives.ToggleButton.add_Indeterminate(System.EventHandler{Avalonia.Interactivity.RoutedEventArgs}) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Primitives.ToggleButton.add_Unchecked(System.EventHandler{Avalonia.Interactivity.RoutedEventArgs}) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Primitives.ToggleButton.OnChecked(Avalonia.Interactivity.RoutedEventArgs) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Primitives.ToggleButton.OnIndeterminate(Avalonia.Interactivity.RoutedEventArgs) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Primitives.ToggleButton.OnUnchecked(Avalonia.Interactivity.RoutedEventArgs) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Primitives.ToggleButton.remove_Checked(System.EventHandler{Avalonia.Interactivity.RoutedEventArgs}) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Primitives.ToggleButton.remove_Indeterminate(System.EventHandler{Avalonia.Interactivity.RoutedEventArgs}) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Primitives.ToggleButton.remove_Unchecked(System.EventHandler{Avalonia.Interactivity.RoutedEventArgs}) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Screens.ScreenFromWindow(Avalonia.Platform.IWindowBaseImpl) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.TabItem.SubscribeToOwnerProperties(Avalonia.AvaloniaObject) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.TreeView.get_ItemContainerGenerator + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Platform.Screen.#ctor(System.Double,Avalonia.PixelRect,Avalonia.PixelRect,System.Boolean) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Platform.Screen.get_PixelDensity + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Platform.Screen.get_Primary + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Platform.Screen.set_Bounds(Avalonia.PixelRect) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Platform.Screen.set_CurrentOrientation(Avalonia.Platform.ScreenOrientation) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Platform.Screen.set_DisplayName(System.String) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Platform.Screen.set_IsPrimary(System.Boolean) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Platform.Screen.set_Scaling(System.Double) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Platform.Screen.set_WorkingArea(Avalonia.PixelRect) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Dialogs.ManagedFileDialogExtensions.ShowManagedAsync(Avalonia.Controls.OpenFileDialog,Avalonia.Controls.Window,Avalonia.Dialogs.ManagedFileDialogOptions) + baseline/Avalonia/lib/net10.0/Avalonia.Dialogs.dll + current/Avalonia/lib/net10.0/Avalonia.Dialogs.dll + + + CP0002 + M:Avalonia.Dialogs.ManagedFileDialogExtensions.ShowManagedAsync``1(Avalonia.Controls.OpenFileDialog,Avalonia.Controls.Window,Avalonia.Dialogs.ManagedFileDialogOptions) + baseline/Avalonia/lib/net10.0/Avalonia.Dialogs.dll + current/Avalonia/lib/net10.0/Avalonia.Dialogs.dll + + + CP0002 + M:Avalonia.Data.Binding.#ctor(System.String,Avalonia.Data.BindingMode) + baseline/Avalonia/lib/net10.0/Avalonia.Markup.dll + current/Avalonia/lib/net10.0/Avalonia.Markup.dll + + + CP0002 + M:Avalonia.Markup.Xaml.MarkupExtensions.ReflectionBindingExtension.#ctor(System.String,Avalonia.Data.BindingMode) + baseline/Avalonia/lib/net10.0/Avalonia.Markup.Xaml.dll + current/Avalonia/lib/net10.0/Avalonia.Markup.Xaml.dll + + + CP0002 + M:Avalonia.Markup.Xaml.XamlLoadException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) + baseline/Avalonia/lib/net10.0/Avalonia.Markup.Xaml.dll + current/Avalonia/lib/net10.0/Avalonia.Markup.Xaml.dll + + + CP0002 + F:Avalonia.Media.Fonts.FontCollectionBase._glyphTypefaceCache + baseline/Avalonia/lib/net6.0/Avalonia.Base.dll + current/Avalonia/lib/net6.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.Fonts.FontCollectionBase.Initialize(Avalonia.Platform.IFontManagerImpl) + baseline/Avalonia/lib/net6.0/Avalonia.Base.dll + current/Avalonia/lib/net6.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.Fonts.IFontCollection.Initialize(Avalonia.Platform.IFontManagerImpl) + baseline/Avalonia/lib/net6.0/Avalonia.Base.dll + current/Avalonia/lib/net6.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Platform.IFontManagerImpl.TryMatchCharacter(System.Int32,Avalonia.Media.FontStyle,Avalonia.Media.FontWeight,Avalonia.Media.FontStretch,System.Globalization.CultureInfo,Avalonia.Media.Typeface@) + baseline/Avalonia/lib/net6.0/Avalonia.Base.dll + current/Avalonia/lib/net6.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Dialogs.Internal.ManagedFileChooserFilterViewModel.#ctor(Avalonia.Platform.Storage.FilePickerFileType) + baseline/Avalonia/lib/net6.0/Avalonia.Dialogs.dll + current/Avalonia/lib/net6.0/Avalonia.Dialogs.dll + + + CP0002 + F:Avalonia.Controls.ResourcesChangedEventArgs.Empty + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + F:Avalonia.Data.BindingPriority.TemplatedParent + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + F:Avalonia.Input.DataFormats.FileNames + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + F:Avalonia.Input.DataFormats.Files + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + F:Avalonia.Input.DataFormats.Text + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + F:Avalonia.Media.DrawingImage.ViewboxProperty + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + F:Avalonia.Media.Fonts.FontCollectionBase._glyphTypefaceCache + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + F:Avalonia.Media.RadialGradientBrush.RadiusProperty + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Animation.Animation.SetAnimator(Avalonia.Animation.IAnimationSetter,Avalonia.Animation.CustomAnimatorBase) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.AvaloniaObjectExtensions.Bind(Avalonia.AvaloniaObject,Avalonia.AvaloniaProperty,Avalonia.Data.BindingBase,System.Object) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Controls.ResourcesChangedEventArgs.#ctor + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Data.CompiledBindingPathBuilder.SetRawSource(System.Object) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Data.ReflectionBinding.#ctor(System.String,Avalonia.Data.BindingMode) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.DataObject.Contains(System.String) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.DataObject.Get(System.String) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.DataObject.GetDataFormats + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.DataObject.Set(System.String,System.Object) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.DragDrop.DoDragDrop(Avalonia.Input.PointerEventArgs,Avalonia.Input.IDataObject,Avalonia.Input.DragDropEffects) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.DragEventArgs.#ctor(Avalonia.Interactivity.RoutedEvent{Avalonia.Input.DragEventArgs},Avalonia.Input.IDataObject,Avalonia.Interactivity.Interactive,Avalonia.Point,Avalonia.Input.KeyModifiers) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.DragEventArgs.get_Data + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.IKeyboardNavigationHandler.Move(Avalonia.Input.IInputElement,Avalonia.Input.NavigationDirection,Avalonia.Input.KeyModifiers) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.KeyboardNavigationHandler.Move(Avalonia.Input.IInputElement,Avalonia.Input.NavigationDirection,Avalonia.Input.KeyModifiers) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.Platform.IClipboard.GetDataAsync(System.String) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.Platform.IClipboard.GetFormatsAsync + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.Platform.IClipboard.GetTextAsync + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.Platform.IClipboard.SetDataObjectAsync(Avalonia.Input.IDataObject) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.Platform.IClipboard.SetTextAsync(System.String) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.Platform.IClipboard.TryGetInProcessDataObjectAsync + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.Platform.IPlatformDragSource.DoDragDrop(Avalonia.Input.PointerEventArgs,Avalonia.Input.IDataObject,Avalonia.Input.DragDropEffects) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.Raw.RawDragEvent.#ctor(Avalonia.Input.Raw.IDragDropDevice,Avalonia.Input.Raw.RawDragEventType,Avalonia.Input.IInputRoot,Avalonia.Point,Avalonia.Input.IDataObject,Avalonia.Input.DragDropEffects,Avalonia.Input.RawInputModifiers) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.Raw.RawDragEvent.get_Data + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.Raw.RawKeyEventArgs.#ctor(Avalonia.Input.IInputDevice,System.UInt64,Avalonia.Input.IInputRoot,Avalonia.Input.Raw.RawKeyEventType,Avalonia.Input.Key,Avalonia.Input.RawInputModifiers,Avalonia.Input.PhysicalKey,Avalonia.Input.KeyDeviceType,System.String) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.Raw.RawKeyEventArgs.#ctor(Avalonia.Input.IInputDevice,System.UInt64,Avalonia.Input.IInputRoot,Avalonia.Input.Raw.RawKeyEventType,Avalonia.Input.Key,Avalonia.Input.RawInputModifiers,Avalonia.Input.PhysicalKey,System.String) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.Raw.RawKeyEventArgs.#ctor(Avalonia.Input.IKeyboardDevice,System.UInt64,Avalonia.Input.IInputRoot,Avalonia.Input.Raw.RawKeyEventType,Avalonia.Input.Key,Avalonia.Input.RawInputModifiers) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Input.TextInput.TextInputMethodClient.ShowInputPanel + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.Color.ToUint32 + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.DrawingContext.PushPostTransform(Avalonia.Matrix) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.DrawingContext.PushPreTransform(Avalonia.Matrix) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.DrawingContext.PushTransformContainer + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.DrawingImage.get_Viewbox + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.DrawingImage.set_Viewbox(System.Nullable{Avalonia.Rect}) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.Fonts.FontCollectionBase.Initialize(Avalonia.Platform.IFontManagerImpl) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.Fonts.IFontCollection.Initialize(Avalonia.Platform.IFontManagerImpl) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.Imaging.Bitmap.CopyPixels(Avalonia.Platform.ILockedFramebuffer,Avalonia.Platform.AlphaFormat) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.Immutable.ImmutableRadialGradientBrush.get_Radius + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.IRadialGradientBrush.get_Radius + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.RadialGradientBrush.get_Radius + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.RadialGradientBrush.set_Radius(System.Double) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.StreamGeometryContext.ArcTo(Avalonia.Point,Avalonia.Size,System.Double,System.Boolean,Avalonia.Media.SweepDirection) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.StreamGeometryContext.CubicBezierTo(Avalonia.Point,Avalonia.Point,Avalonia.Point) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.StreamGeometryContext.LineTo(Avalonia.Point) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.StreamGeometryContext.QuadraticBezierTo(Avalonia.Point,Avalonia.Point) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.TextFormatting.GenericTextRunProperties.#ctor(Avalonia.Media.Typeface,Avalonia.Media.FontFeatureCollection,System.Double,Avalonia.Media.TextDecorationCollection,Avalonia.Media.IBrush,Avalonia.Media.IBrush,Avalonia.Media.BaselineAlignment,System.Globalization.CultureInfo) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.TextFormatting.GenericTextRunProperties.#ctor(Avalonia.Media.Typeface,System.Double,Avalonia.Media.TextDecorationCollection,Avalonia.Media.IBrush,Avalonia.Media.IBrush,Avalonia.Media.BaselineAlignment,System.Globalization.CultureInfo) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.TextFormatting.TextCollapsingProperties.CreateCollapsedRuns(Avalonia.Media.TextFormatting.TextLine,System.Int32,Avalonia.Media.FlowDirection,Avalonia.Media.TextFormatting.TextRun) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.TextFormatting.TextLayout.#ctor(System.String,Avalonia.Media.Typeface,Avalonia.Media.FontFeatureCollection,System.Double,Avalonia.Media.IBrush,Avalonia.Media.TextAlignment,Avalonia.Media.TextWrapping,Avalonia.Media.TextTrimming,Avalonia.Media.TextDecorationCollection,Avalonia.Media.FlowDirection,System.Double,System.Double,System.Double,System.Double,System.Int32,System.Collections.Generic.IReadOnlyList{Avalonia.Utilities.ValueSpan{Avalonia.Media.TextFormatting.TextRunProperties}}) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.TextFormatting.TextLayout.#ctor(System.String,Avalonia.Media.Typeface,System.Double,Avalonia.Media.IBrush,Avalonia.Media.TextAlignment,Avalonia.Media.TextWrapping,Avalonia.Media.TextTrimming,Avalonia.Media.TextDecorationCollection,Avalonia.Media.FlowDirection,System.Double,System.Double,System.Double,System.Double,System.Int32,System.Collections.Generic.IReadOnlyList{Avalonia.Utilities.ValueSpan{Avalonia.Media.TextFormatting.TextRunProperties}}) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.TextFormatting.TextShaperOptions.#ctor(Avalonia.Media.GlyphTypeface,System.Collections.Generic.IReadOnlyList{Avalonia.Media.FontFeature},System.Double,System.SByte,System.Globalization.CultureInfo,System.Double,System.Double) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Media.TextFormatting.TextShaperOptions.#ctor(Avalonia.Media.GlyphTypeface,System.Double,System.SByte,System.Globalization.CultureInfo,System.Double,System.Double) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Platform.IDrawingContextImplWithEffects.PushEffect(Avalonia.Media.IEffect) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Platform.IFontManagerImpl.TryMatchCharacter(System.Int32,Avalonia.Media.FontStyle,Avalonia.Media.FontWeight,Avalonia.Media.FontStretch,System.Globalization.CultureInfo,Avalonia.Media.Typeface@) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Platform.IGeometryContext.ArcTo(Avalonia.Point,Avalonia.Size,System.Double,System.Boolean,Avalonia.Media.SweepDirection) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Platform.IGeometryContext.CubicBezierTo(Avalonia.Point,Avalonia.Point,Avalonia.Point) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Platform.IGeometryContext.LineTo(Avalonia.Point) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Platform.IGeometryContext.QuadraticBezierTo(Avalonia.Point,Avalonia.Point) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Platform.IPlatformRenderInterfaceContext.CreateOffscreenRenderTarget(Avalonia.PixelSize,System.Double) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Platform.LockedFramebuffer.#ctor(System.IntPtr,Avalonia.PixelSize,System.Int32,Avalonia.Vector,Avalonia.Platform.PixelFormat,System.Action) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Rendering.Composition.ICompositionGpuImportedObject.get_ImportCompeted + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Utilities.AvaloniaResourcesIndexReaderWriter.WriteResources(System.IO.Stream,System.Collections.Generic.List{System.ValueTuple{System.String,System.Int32,System.Func{System.IO.Stream}}}) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Visuals.Platform.PathGeometryContext.ArcTo(Avalonia.Point,Avalonia.Size,System.Double,System.Boolean,Avalonia.Media.SweepDirection) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Visuals.Platform.PathGeometryContext.CubicBezierTo(Avalonia.Point,Avalonia.Point,Avalonia.Point) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Visuals.Platform.PathGeometryContext.LineTo(Avalonia.Point) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Visuals.Platform.PathGeometryContext.QuadraticBezierTo(Avalonia.Point,Avalonia.Point) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0002 + F:Avalonia.Controls.ContextMenu.PlacementModeProperty + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0002 + F:Avalonia.Controls.Documents.Inline.TextDecorationsProperty + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0002 + F:Avalonia.Controls.NativeMenuBar.EnableMenuItemClickForwardingProperty + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0002 + F:Avalonia.Controls.NativeMenuItem.ToggleTypeProperty + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0002 + F:Avalonia.Controls.Primitives.Popup.PlacementModeProperty + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0002 + F:Avalonia.Controls.Primitives.ToggleButton.CheckedEvent + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0002 + F:Avalonia.Controls.Primitives.ToggleButton.IndeterminateEvent + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0002 + F:Avalonia.Controls.Primitives.ToggleButton.UncheckedEvent + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0002 + F:Avalonia.Controls.TextBlock.LetterSpacingProperty + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0002 + F:Avalonia.Controls.TextBox.LetterSpacingProperty + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.AppBuilder.get_LifetimeOverride + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Application.add_UrlsOpened(System.EventHandler{Avalonia.UrlOpenedEventArgs}) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Application.remove_UrlsOpened(System.EventHandler{Avalonia.UrlOpenedEventArgs}) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.ContextMenu.get_PlacementMode + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.ContextMenu.set_PlacementMode(Avalonia.Controls.PlacementMode) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Design.CreatePreviewWithControl(System.Object) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Design.GetDataContext(Avalonia.Controls.Templates.IDataTemplate) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Design.GetPreviewWith(Avalonia.Controls.Templates.IDataTemplate) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Design.GetPreviewWith(Avalonia.Styling.IStyle) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Design.SetDataContext(Avalonia.Controls.Templates.IDataTemplate,System.Object) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Design.SetPreviewWith(Avalonia.AvaloniaObject,Avalonia.Controls.Control) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0002 + M:Avalonia.Controls.Design.SetPreviewWith(Avalonia.AvaloniaObject,Avalonia.Controls.ITemplate{Avalonia.Controls.Control}) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll - CP0001 - T:Avalonia.Media.Fonts.FontFamilyLoader - baseline/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - current/Avalonia/lib/netstandard2.0/Avalonia.Base.dll + CP0002 + M:Avalonia.Controls.Design.SetPreviewWith(Avalonia.Controls.ResourceDictionary,Avalonia.Controls.ITemplate{Avalonia.Controls.Control}) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - F:Avalonia.Media.Fonts.FontCollectionBase._glyphTypefaceCache - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll + M:Avalonia.Controls.Design.SetPreviewWith(Avalonia.Controls.Templates.IDataTemplate,Avalonia.Controls.Control) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Media.Fonts.FontCollectionBase.Initialize(Avalonia.Platform.IFontManagerImpl) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll + M:Avalonia.Controls.Design.SetPreviewWith(Avalonia.Controls.Templates.IDataTemplate,Avalonia.Controls.ITemplate{Avalonia.Controls.Control}) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Media.Fonts.IFontCollection.Initialize(Avalonia.Platform.IFontManagerImpl) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll + M:Avalonia.Controls.Design.SetPreviewWith(Avalonia.Styling.IStyle,Avalonia.Controls.Control) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Platform.IDrawingContextImplWithEffects.PushEffect(Avalonia.Media.IEffect) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll + M:Avalonia.Controls.Design.SetPreviewWith(Avalonia.Styling.IStyle,Avalonia.Controls.ITemplate{Avalonia.Controls.Control}) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Platform.IFontManagerImpl.TryMatchCharacter(System.Int32,Avalonia.Media.FontStyle,Avalonia.Media.FontWeight,Avalonia.Media.FontStretch,System.Globalization.CultureInfo,Avalonia.Media.Typeface@) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll + M:Avalonia.Controls.Generators.ItemContainerGenerator.ContainerFromIndex(System.Int32) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - F:Avalonia.Controls.TextBlock.LetterSpacingProperty - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll + M:Avalonia.Controls.Generators.ItemContainerGenerator.IndexFromContainer(Avalonia.Controls.Control) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - F:Avalonia.Controls.TextBox.LetterSpacingProperty - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll + M:Avalonia.Controls.ItemsControl.ItemsControlFromItemContaner(Avalonia.Controls.Control) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Controls.Design.CreatePreviewWithControl(System.Object) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll + M:Avalonia.Controls.NativeMenuBar.SetEnableMenuItemClickForwarding(Avalonia.Controls.MenuItem,System.Boolean) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Controls.Design.GetDataContext(Avalonia.Controls.Templates.IDataTemplate) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll + M:Avalonia.Controls.NativeMenuItem.get_ToggleType + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Controls.Design.GetPreviewWith(Avalonia.Controls.Templates.IDataTemplate) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll + M:Avalonia.Controls.Platform.IInsetsManager.get_DisplayEdgeToEdge + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Controls.Design.GetPreviewWith(Avalonia.Styling.IStyle) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll + M:Avalonia.Controls.Platform.IInsetsManager.set_DisplayEdgeToEdge(System.Boolean) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Controls.Design.SetDataContext(Avalonia.Controls.Templates.IDataTemplate,System.Object) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll + M:Avalonia.Controls.Platform.InsetsManagerBase.get_DisplayEdgeToEdge + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Controls.Design.SetPreviewWith(Avalonia.AvaloniaObject,Avalonia.Controls.ITemplate{Avalonia.Controls.Control}) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll + M:Avalonia.Controls.Platform.InsetsManagerBase.set_DisplayEdgeToEdge(System.Boolean) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Controls.Design.SetPreviewWith(Avalonia.Controls.ResourceDictionary,Avalonia.Controls.ITemplate{Avalonia.Controls.Control}) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll + M:Avalonia.Controls.Primitives.OverlayPopupHost.ConfigurePosition(Avalonia.Visual,Avalonia.Controls.PlacementMode,Avalonia.Point,Avalonia.Controls.Primitives.PopupPositioning.PopupAnchor,Avalonia.Controls.Primitives.PopupPositioning.PopupGravity,Avalonia.Controls.Primitives.PopupPositioning.PopupPositionerConstraintAdjustment,System.Nullable{Avalonia.Rect}) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Controls.Design.SetPreviewWith(Avalonia.Controls.Templates.IDataTemplate,Avalonia.Controls.Control) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll + M:Avalonia.Controls.Primitives.OverlayPopupHost.CreatePopupHost(Avalonia.Visual,Avalonia.IAvaloniaDependencyResolver) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Controls.Design.SetPreviewWith(Avalonia.Controls.Templates.IDataTemplate,Avalonia.Controls.ITemplate{Avalonia.Controls.Control}) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll + M:Avalonia.Controls.Primitives.Popup.get_PlacementMode + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Controls.Design.SetPreviewWith(Avalonia.Styling.IStyle,Avalonia.Controls.Control) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll + M:Avalonia.Controls.Primitives.Popup.set_PlacementMode(Avalonia.Controls.PlacementMode) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Controls.Design.SetPreviewWith(Avalonia.Styling.IStyle,Avalonia.Controls.ITemplate{Avalonia.Controls.Control}) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll + M:Avalonia.Controls.Primitives.PopupRoot.ConfigurePosition(Avalonia.Visual,Avalonia.Controls.PlacementMode,Avalonia.Point,Avalonia.Controls.Primitives.PopupPositioning.PopupAnchor,Avalonia.Controls.Primitives.PopupPositioning.PopupGravity,Avalonia.Controls.Primitives.PopupPositioning.PopupPositionerConstraintAdjustment,System.Nullable{Avalonia.Rect}) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - F:Avalonia.Media.Fonts.FontCollectionBase._glyphTypefaceCache - baseline/Avalonia/lib/net6.0/Avalonia.Base.dll - current/Avalonia/lib/net6.0/Avalonia.Base.dll + M:Avalonia.Controls.Primitives.TextSearch.GetText(Avalonia.Controls.Control) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Media.Fonts.FontCollectionBase.Initialize(Avalonia.Platform.IFontManagerImpl) - baseline/Avalonia/lib/net6.0/Avalonia.Base.dll - current/Avalonia/lib/net6.0/Avalonia.Base.dll + M:Avalonia.Controls.Primitives.TextSearch.SetText(Avalonia.Controls.Control,System.String) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Media.Fonts.IFontCollection.Initialize(Avalonia.Platform.IFontManagerImpl) - baseline/Avalonia/lib/net6.0/Avalonia.Base.dll - current/Avalonia/lib/net6.0/Avalonia.Base.dll + M:Avalonia.Controls.Primitives.ToggleButton.add_Checked(System.EventHandler{Avalonia.Interactivity.RoutedEventArgs}) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Platform.IFontManagerImpl.TryMatchCharacter(System.Int32,Avalonia.Media.FontStyle,Avalonia.Media.FontWeight,Avalonia.Media.FontStretch,System.Globalization.CultureInfo,Avalonia.Media.Typeface@) - baseline/Avalonia/lib/net6.0/Avalonia.Base.dll - current/Avalonia/lib/net6.0/Avalonia.Base.dll + M:Avalonia.Controls.Primitives.ToggleButton.add_Indeterminate(System.EventHandler{Avalonia.Interactivity.RoutedEventArgs}) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Dialogs.Internal.ManagedFileChooserFilterViewModel.#ctor(Avalonia.Platform.Storage.FilePickerFileType) - baseline/Avalonia/lib/net6.0/Avalonia.Dialogs.dll - current/Avalonia/lib/net6.0/Avalonia.Dialogs.dll + M:Avalonia.Controls.Primitives.ToggleButton.add_Unchecked(System.EventHandler{Avalonia.Interactivity.RoutedEventArgs}) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - F:Avalonia.Media.Fonts.FontCollectionBase._glyphTypefaceCache - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll + M:Avalonia.Controls.Primitives.ToggleButton.OnChecked(Avalonia.Interactivity.RoutedEventArgs) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Media.Fonts.FontCollectionBase.Initialize(Avalonia.Platform.IFontManagerImpl) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll + M:Avalonia.Controls.Primitives.ToggleButton.OnIndeterminate(Avalonia.Interactivity.RoutedEventArgs) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Media.Fonts.IFontCollection.Initialize(Avalonia.Platform.IFontManagerImpl) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll + M:Avalonia.Controls.Primitives.ToggleButton.OnUnchecked(Avalonia.Interactivity.RoutedEventArgs) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Platform.IDrawingContextImplWithEffects.PushEffect(Avalonia.Media.IEffect) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll + M:Avalonia.Controls.Primitives.ToggleButton.remove_Checked(System.EventHandler{Avalonia.Interactivity.RoutedEventArgs}) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Platform.IFontManagerImpl.TryMatchCharacter(System.Int32,Avalonia.Media.FontStyle,Avalonia.Media.FontWeight,Avalonia.Media.FontStretch,System.Globalization.CultureInfo,Avalonia.Media.Typeface@) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll + M:Avalonia.Controls.Primitives.ToggleButton.remove_Indeterminate(System.EventHandler{Avalonia.Interactivity.RoutedEventArgs}) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - F:Avalonia.Controls.TextBlock.LetterSpacingProperty + M:Avalonia.Controls.Primitives.ToggleButton.remove_Unchecked(System.EventHandler{Avalonia.Interactivity.RoutedEventArgs}) baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - F:Avalonia.Controls.TextBox.LetterSpacingProperty + M:Avalonia.Controls.Screens.ScreenFromWindow(Avalonia.Platform.IWindowBaseImpl) baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Controls.Design.CreatePreviewWithControl(System.Object) + M:Avalonia.Controls.TabItem.SubscribeToOwnerProperties(Avalonia.AvaloniaObject) baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Controls.Design.GetDataContext(Avalonia.Controls.Templates.IDataTemplate) + M:Avalonia.Controls.TreeView.get_ItemContainerGenerator baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Controls.Design.GetPreviewWith(Avalonia.Controls.Templates.IDataTemplate) + M:Avalonia.Platform.Screen.#ctor(System.Double,Avalonia.PixelRect,Avalonia.PixelRect,System.Boolean) baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Controls.Design.GetPreviewWith(Avalonia.Styling.IStyle) + M:Avalonia.Platform.Screen.get_PixelDensity baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Controls.Design.SetDataContext(Avalonia.Controls.Templates.IDataTemplate,System.Object) + M:Avalonia.Platform.Screen.get_Primary baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Controls.Design.SetPreviewWith(Avalonia.AvaloniaObject,Avalonia.Controls.ITemplate{Avalonia.Controls.Control}) + M:Avalonia.Platform.Screen.set_Bounds(Avalonia.PixelRect) baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Controls.Design.SetPreviewWith(Avalonia.Controls.ResourceDictionary,Avalonia.Controls.ITemplate{Avalonia.Controls.Control}) + M:Avalonia.Platform.Screen.set_CurrentOrientation(Avalonia.Platform.ScreenOrientation) baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Controls.Design.SetPreviewWith(Avalonia.Controls.Templates.IDataTemplate,Avalonia.Controls.Control) + M:Avalonia.Platform.Screen.set_DisplayName(System.String) baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Controls.Design.SetPreviewWith(Avalonia.Controls.Templates.IDataTemplate,Avalonia.Controls.ITemplate{Avalonia.Controls.Control}) + M:Avalonia.Platform.Screen.set_IsPrimary(System.Boolean) baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Controls.Design.SetPreviewWith(Avalonia.Styling.IStyle,Avalonia.Controls.Control) + M:Avalonia.Platform.Screen.set_Scaling(System.Double) baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll current/Avalonia/lib/net8.0/Avalonia.Controls.dll CP0002 - M:Avalonia.Controls.Design.SetPreviewWith(Avalonia.Styling.IStyle,Avalonia.Controls.ITemplate{Avalonia.Controls.Control}) + M:Avalonia.Platform.Screen.set_WorkingArea(Avalonia.PixelRect) baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll current/Avalonia/lib/net8.0/Avalonia.Controls.dll @@ -277,6 +2119,36 @@ baseline/Avalonia/lib/net8.0/Avalonia.Dialogs.dll current/Avalonia/lib/net8.0/Avalonia.Dialogs.dll + + CP0002 + M:Avalonia.Dialogs.ManagedFileDialogExtensions.ShowManagedAsync(Avalonia.Controls.OpenFileDialog,Avalonia.Controls.Window,Avalonia.Dialogs.ManagedFileDialogOptions) + baseline/Avalonia/lib/net8.0/Avalonia.Dialogs.dll + current/Avalonia/lib/net8.0/Avalonia.Dialogs.dll + + + CP0002 + M:Avalonia.Dialogs.ManagedFileDialogExtensions.ShowManagedAsync``1(Avalonia.Controls.OpenFileDialog,Avalonia.Controls.Window,Avalonia.Dialogs.ManagedFileDialogOptions) + baseline/Avalonia/lib/net8.0/Avalonia.Dialogs.dll + current/Avalonia/lib/net8.0/Avalonia.Dialogs.dll + + + CP0002 + M:Avalonia.Data.Binding.#ctor(System.String,Avalonia.Data.BindingMode) + baseline/Avalonia/lib/net8.0/Avalonia.Markup.dll + current/Avalonia/lib/net8.0/Avalonia.Markup.dll + + + CP0002 + M:Avalonia.Markup.Xaml.MarkupExtensions.ReflectionBindingExtension.#ctor(System.String,Avalonia.Data.BindingMode) + baseline/Avalonia/lib/net8.0/Avalonia.Markup.Xaml.dll + current/Avalonia/lib/net8.0/Avalonia.Markup.Xaml.dll + + + CP0002 + M:Avalonia.Markup.Xaml.XamlLoadException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) + baseline/Avalonia/lib/net8.0/Avalonia.Markup.Xaml.dll + current/Avalonia/lib/net8.0/Avalonia.Markup.Xaml.dll + CP0002 F:Avalonia.Media.Fonts.FontCollectionBase._glyphTypefaceCache @@ -302,32 +2174,98 @@ current/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - CP0002 - M:Avalonia.Dialogs.Internal.ManagedFileChooserFilterViewModel.#ctor(Avalonia.Platform.Storage.FilePickerFileType) - baseline/Avalonia/lib/netstandard2.0/Avalonia.Dialogs.dll - current/Avalonia/lib/netstandard2.0/Avalonia.Dialogs.dll + CP0002 + M:Avalonia.Dialogs.Internal.ManagedFileChooserFilterViewModel.#ctor(Avalonia.Platform.Storage.FilePickerFileType) + baseline/Avalonia/lib/netstandard2.0/Avalonia.Dialogs.dll + current/Avalonia/lib/netstandard2.0/Avalonia.Dialogs.dll + + + CP0002 + M:Avalonia.Platform.IDrawingContextImplWithEffects.PopEffect + baseline/netstandard2.0/Avalonia.Base.dll + target/netstandard2.0/Avalonia.Base.dll + + + CP0002 + M:Avalonia.Platform.IDrawingContextImplWithEffects.PushEffect(Avalonia.Media.IEffect) + baseline/netstandard2.0/Avalonia.Base.dll + target/netstandard2.0/Avalonia.Base.dll + + + CP0006 + M:Avalonia.Input.IKeyboardNavigationHandler.Move(Avalonia.Input.IInputElement,Avalonia.Input.NavigationDirection,Avalonia.Input.KeyModifiers,System.Nullable{Avalonia.Input.KeyDeviceType}) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0006 + M:Avalonia.Platform.IDrawingContextImpl.PopTextOptions + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0006 + M:Avalonia.Platform.IDrawingContextImpl.PushTextOptions(Avalonia.Media.TextOptions) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0006 + M:Avalonia.Platform.IDrawingContextImplWithEffects.PushEffect(System.Nullable{Avalonia.Rect},Avalonia.Media.IEffect) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0006 + M:Avalonia.Platform.IFontManagerImpl.TryMatchCharacter(System.Int32,Avalonia.Media.FontStyle,Avalonia.Media.FontWeight,Avalonia.Media.FontStretch,System.String,System.Globalization.CultureInfo,Avalonia.Media.Typeface@) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0006 + M:Avalonia.Platform.IGeometryContext.ArcTo(Avalonia.Point,Avalonia.Size,System.Double,System.Boolean,Avalonia.Media.SweepDirection,System.Boolean) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0006 + M:Avalonia.Platform.IGeometryContext.CubicBezierTo(Avalonia.Point,Avalonia.Point,Avalonia.Point,System.Boolean) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0006 + M:Avalonia.Platform.IGeometryContext.LineTo(Avalonia.Point,System.Boolean) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0006 + M:Avalonia.Platform.IGeometryContext.QuadraticBezierTo(Avalonia.Point,Avalonia.Point,System.Boolean) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll - CP0002 - M:Avalonia.Platform.IDrawingContextImplWithEffects.PopEffect - baseline/netstandard2.0/Avalonia.Base.dll - target/netstandard2.0/Avalonia.Base.dll + CP0006 + M:Avalonia.Platform.IPlatformRenderInterfaceContext.CreateOffscreenRenderTarget(Avalonia.PixelSize,Avalonia.Vector,System.Boolean) + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll - CP0002 - M:Avalonia.Platform.IDrawingContextImplWithEffects.PushEffect(Avalonia.Media.IEffect) - baseline/netstandard2.0/Avalonia.Base.dll - target/netstandard2.0/Avalonia.Base.dll + CP0006 + P:Avalonia.Platform.ILockedFramebuffer.AlphaFormat + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll CP0006 - M:Avalonia.Platform.IDrawingContextImplWithEffects.PushEffect(System.Nullable{Avalonia.Rect},Avalonia.Media.IEffect) + P:Avalonia.Platform.IPlatformRenderInterfaceContext.MaxOffscreenRenderTargetPixelSize baseline/Avalonia/lib/net10.0/Avalonia.Base.dll current/Avalonia/lib/net10.0/Avalonia.Base.dll CP0006 - M:Avalonia.Platform.IFontManagerImpl.TryMatchCharacter(System.Int32,Avalonia.Media.FontStyle,Avalonia.Media.FontWeight,Avalonia.Media.FontStretch,System.String,System.Globalization.CultureInfo,Avalonia.Media.Typeface@) + P:Avalonia.Platform.IReadableBitmapImpl.AlphaFormat baseline/Avalonia/lib/net10.0/Avalonia.Base.dll current/Avalonia/lib/net10.0/Avalonia.Base.dll @@ -391,6 +2329,12 @@ baseline/Avalonia/lib/net6.0/Avalonia.OpenGL.dll current/Avalonia/lib/net6.0/Avalonia.OpenGL.dll + + CP0006 + M:Avalonia.Input.IKeyboardNavigationHandler.Move(Avalonia.Input.IInputElement,Avalonia.Input.NavigationDirection,Avalonia.Input.KeyModifiers,System.Nullable{Avalonia.Input.KeyDeviceType}) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + CP0006 M:Avalonia.Input.Platform.IClipboard.SetDataAsync(Avalonia.Input.IAsyncDataTransfer) @@ -415,6 +2359,18 @@ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll current/Avalonia/lib/net8.0/Avalonia.Base.dll + + CP0006 + M:Avalonia.Platform.IDrawingContextImpl.PopTextOptions + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0006 + M:Avalonia.Platform.IDrawingContextImpl.PushTextOptions(Avalonia.Media.TextOptions) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + CP0006 M:Avalonia.Platform.IDrawingContextImplWithEffects.PushEffect(System.Nullable{Avalonia.Rect},Avalonia.Media.IEffect) @@ -427,6 +2383,36 @@ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll current/Avalonia/lib/net8.0/Avalonia.Base.dll + + CP0006 + M:Avalonia.Platform.IGeometryContext.ArcTo(Avalonia.Point,Avalonia.Size,System.Double,System.Boolean,Avalonia.Media.SweepDirection,System.Boolean) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0006 + M:Avalonia.Platform.IGeometryContext.CubicBezierTo(Avalonia.Point,Avalonia.Point,Avalonia.Point,System.Boolean) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0006 + M:Avalonia.Platform.IGeometryContext.LineTo(Avalonia.Point,System.Boolean) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0006 + M:Avalonia.Platform.IGeometryContext.QuadraticBezierTo(Avalonia.Point,Avalonia.Point,System.Boolean) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0006 + M:Avalonia.Platform.IPlatformRenderInterfaceContext.CreateOffscreenRenderTarget(Avalonia.PixelSize,Avalonia.Vector,System.Boolean) + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + CP0006 M:Avalonia.Platform.IPlatformRenderInterfaceImportedImage.SnapshotWithTimelineSemaphores(Avalonia.Platform.IPlatformRenderInterfaceImportedSemaphore,System.UInt64,Avalonia.Platform.IPlatformRenderInterfaceImportedSemaphore,System.UInt64) @@ -439,6 +2425,24 @@ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll current/Avalonia/lib/net8.0/Avalonia.Base.dll + + CP0006 + P:Avalonia.Platform.ILockedFramebuffer.AlphaFormat + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0006 + P:Avalonia.Platform.IPlatformRenderInterfaceContext.MaxOffscreenRenderTargetPixelSize + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0006 + P:Avalonia.Platform.IReadableBitmapImpl.AlphaFormat + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + CP0006 M:Avalonia.OpenGL.IGlExternalSemaphore.SignalTimelineSemaphore(Avalonia.OpenGL.IGlExternalImageTexture,System.UInt64) @@ -517,6 +2521,282 @@ baseline/Avalonia/lib/netstandard2.0/Avalonia.OpenGL.dll current/Avalonia/lib/netstandard2.0/Avalonia.OpenGL.dll + + CP0007 + T:Avalonia.Controls.ResourcesChangedEventArgs + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0007 + T:Avalonia.Controls.ResourcesChangedEventArgs + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0008 + T:Avalonia.Input.DataObject + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0008 + T:Avalonia.Media.ImmediateDrawingContext + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0008 + T:Avalonia.Media.StreamGeometryContext + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0008 + T:Avalonia.Platform.IPlatformGraphicsContext + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0008 + T:Avalonia.Platform.IPlatformGraphicsWithFeatures + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0008 + T:Avalonia.Platform.IPlatformRenderInterfaceContext + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0008 + T:Avalonia.Platform.IWriteableBitmapImpl + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0008 + T:Avalonia.Application + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0008 + T:Avalonia.Controls.Embedding.Offscreen.OffscreenTopLevelImplBase + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0008 + T:Avalonia.Controls.Platform.IWin32OptionsTopLevelImpl + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0008 + T:Avalonia.Platform.IPopupImpl + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0008 + T:Avalonia.Platform.ITopLevelImpl + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0008 + T:Avalonia.Platform.IWindowBaseImpl + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0008 + T:Avalonia.Platform.IWindowImpl + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0008 + T:Avalonia.Metal.IMetalDevice + baseline/Avalonia/lib/net10.0/Avalonia.Metal.dll + current/Avalonia/lib/net10.0/Avalonia.Metal.dll + + + CP0008 + T:Avalonia.OpenGL.Egl.EglContext + baseline/Avalonia/lib/net10.0/Avalonia.OpenGL.dll + current/Avalonia/lib/net10.0/Avalonia.OpenGL.dll + + + CP0008 + T:Avalonia.OpenGL.IGlContext + baseline/Avalonia/lib/net10.0/Avalonia.OpenGL.dll + current/Avalonia/lib/net10.0/Avalonia.OpenGL.dll + + + CP0008 + T:Avalonia.Vulkan.IVulkanDevice + baseline/Avalonia/lib/net10.0/Avalonia.Vulkan.dll + current/Avalonia/lib/net10.0/Avalonia.Vulkan.dll + + + CP0008 + T:Avalonia.Vulkan.IVulkanPlatformGraphicsContext + baseline/Avalonia/lib/net10.0/Avalonia.Vulkan.dll + current/Avalonia/lib/net10.0/Avalonia.Vulkan.dll + + + CP0008 + T:Avalonia.Input.DataObject + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0008 + T:Avalonia.Media.ImmediateDrawingContext + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0008 + T:Avalonia.Media.StreamGeometryContext + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0008 + T:Avalonia.Platform.IPlatformGraphicsContext + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0008 + T:Avalonia.Platform.IPlatformGraphicsWithFeatures + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0008 + T:Avalonia.Platform.IPlatformRenderInterfaceContext + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0008 + T:Avalonia.Platform.IWriteableBitmapImpl + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0008 + T:Avalonia.Application + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0008 + T:Avalonia.Controls.Embedding.Offscreen.OffscreenTopLevelImplBase + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0008 + T:Avalonia.Controls.Platform.IWin32OptionsTopLevelImpl + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0008 + T:Avalonia.Platform.IPopupImpl + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0008 + T:Avalonia.Platform.ITopLevelImpl + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0008 + T:Avalonia.Platform.IWindowBaseImpl + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0008 + T:Avalonia.Platform.IWindowImpl + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + + CP0008 + T:Avalonia.Metal.IMetalDevice + baseline/Avalonia/lib/net8.0/Avalonia.Metal.dll + current/Avalonia/lib/net8.0/Avalonia.Metal.dll + + + CP0008 + T:Avalonia.OpenGL.Egl.EglContext + baseline/Avalonia/lib/net8.0/Avalonia.OpenGL.dll + current/Avalonia/lib/net8.0/Avalonia.OpenGL.dll + + + CP0008 + T:Avalonia.OpenGL.IGlContext + baseline/Avalonia/lib/net8.0/Avalonia.OpenGL.dll + current/Avalonia/lib/net8.0/Avalonia.OpenGL.dll + + + CP0008 + T:Avalonia.Vulkan.IVulkanDevice + baseline/Avalonia/lib/net8.0/Avalonia.Vulkan.dll + current/Avalonia/lib/net8.0/Avalonia.Vulkan.dll + + + CP0008 + T:Avalonia.Vulkan.IVulkanPlatformGraphicsContext + baseline/Avalonia/lib/net8.0/Avalonia.Vulkan.dll + current/Avalonia/lib/net8.0/Avalonia.Vulkan.dll + + + CP0009 + T:Avalonia.Controls.ResourcesChangedEventArgs + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0009 + T:Avalonia.Input.DataObject + baseline/Avalonia/lib/net10.0/Avalonia.Base.dll + current/Avalonia/lib/net10.0/Avalonia.Base.dll + + + CP0009 + T:Avalonia.Platform.Screen + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + + CP0009 + T:Avalonia.Controls.ResourcesChangedEventArgs + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0009 + T:Avalonia.Input.DataObject + baseline/Avalonia/lib/net8.0/Avalonia.Base.dll + current/Avalonia/lib/net8.0/Avalonia.Base.dll + + + CP0009 + T:Avalonia.Platform.Screen + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + CP0012 M:Avalonia.Media.Fonts.FontCollectionBase.get_Count @@ -547,6 +2827,12 @@ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll current/Avalonia/lib/net10.0/Avalonia.Base.dll + + CP0012 + M:Avalonia.Platform.Screen.Equals(Avalonia.Platform.Screen) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + CP0012 M:Avalonia.Media.Fonts.FontCollectionBase.get_Count @@ -607,6 +2893,12 @@ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll current/Avalonia/lib/net8.0/Avalonia.Base.dll + + CP0012 + M:Avalonia.Platform.Screen.Equals(Avalonia.Platform.Screen) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + CP0012 M:Avalonia.Media.Fonts.FontCollectionBase.get_Count @@ -637,4 +2929,4 @@ baseline/Avalonia/lib/netstandard2.0/Avalonia.Base.dll current/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - \ No newline at end of file + diff --git a/azure-pipelines-integrationtests.yml b/azure-pipelines-integrationtests.yml index e1e037ed3e..8a91e8fd68 100644 --- a/azure-pipelines-integrationtests.yml +++ b/azure-pipelines-integrationtests.yml @@ -43,7 +43,7 @@ jobs: inputs: command: 'test' projects: 'tests/Avalonia.IntegrationTests.Appium/Avalonia.IntegrationTests.Appium.csproj' - arguments: '-l "console;verbosity=detailed"' + arguments: '--no-progress' - script: | pkill IntegrationTestApp @@ -94,6 +94,7 @@ jobs: inputs: command: 'run' projects: 'tests/Avalonia.IntegrationTests.Win32/Avalonia.IntegrationTests.Win32.csproj' + arguments: '--no-progress' - task: VSTest@2 displayName: 'Run Appium Integration Tests' diff --git a/build/AnalyzerProject.targets b/build/AnalyzerProject.targets index f067ec0418..4a95cb306e 100644 --- a/build/AnalyzerProject.targets +++ b/build/AnalyzerProject.targets @@ -3,12 +3,12 @@ true true + true + $(NoWarn);RS2008 - - - + diff --git a/build/DevAnalyzers.props b/build/DevAnalyzers.props index fd416e3291..ae5e7a6c42 100644 --- a/build/DevAnalyzers.props +++ b/build/DevAnalyzers.props @@ -1,12 +1,20 @@ - - + + diff --git a/build/HarfBuzzSharp.props b/build/HarfBuzzSharp.props index 8f457eb46e..c7a3d753f2 100644 --- a/build/HarfBuzzSharp.props +++ b/build/HarfBuzzSharp.props @@ -1,7 +1,7 @@  - - - + + + diff --git a/build/ImageSharp.props b/build/ImageSharp.props index 4f04171a9a..cf401630b0 100644 --- a/build/ImageSharp.props +++ b/build/ImageSharp.props @@ -1,5 +1,5 @@ - + diff --git a/build/Microsoft.Reactive.Testing.props b/build/Microsoft.Reactive.Testing.props index a0ba2163bb..c39c72df77 100644 --- a/build/Microsoft.Reactive.Testing.props +++ b/build/Microsoft.Reactive.Testing.props @@ -1,5 +1,5 @@  - + diff --git a/build/NullableEnable.props b/build/NullableEnable.props index ef62ecc50c..60b91b85a3 100644 --- a/build/NullableEnable.props +++ b/build/NullableEnable.props @@ -1,11 +1,7 @@ - enable - $(WarningsAsErrors);nullable - $(NoWarn);nullable + + $(NoWarn);nullable diff --git a/build/Rx.props b/build/Rx.props index 73b18c6e0b..462428c286 100644 --- a/build/Rx.props +++ b/build/Rx.props @@ -1,5 +1,5 @@  - + diff --git a/build/SampleApp.props b/build/SampleApp.props index 8ecbe902ab..3f44553d2d 100644 --- a/build/SampleApp.props +++ b/build/SampleApp.props @@ -13,6 +13,10 @@ + + + + - - - + + + diff --git a/build/TrimmingEnable.props b/build/TrimmingEnable.props index 34b3e232b6..cf84ae67b4 100644 --- a/build/TrimmingEnable.props +++ b/build/TrimmingEnable.props @@ -1,28 +1,16 @@ - + false true false true - - - true + $(TreatWarningsAsErrors) - - true - - $(WarningsAsErrors);IL2000;IL2001;IL2002;IL2003;IL2004;IL2005;IL2006;IL2007;IL2008;IL2009;IL2010;IL2011;IL2012;IL2013;IL2014;IL2015;IL2016;IL2017;IL2018;IL2019;IL2020;IL2021;IL2022;IL2023;IL2024;IL2025;IL2026;IL2027;IL2028;IL2029;IL2030;IL2031;IL2032;IL2033;IL2034;IL2035;IL2036;IL2037;IL2038;IL2039;IL2040;IL2041;IL2042;IL2043;IL2044;IL2045;IL2046;IL2047;IL2048;IL2049;IL2050;IL2051;IL2052;IL2053;IL2054;IL2055;IL2056;IL2057;IL2058;IL2059;IL2060;IL2061;IL2062;IL2063;IL2064;IL2065;IL2066;IL2067;IL2068;IL2069;IL2070;IL2071;IL2072;IL2073;IL2074;IL2075;IL2076;IL2077;IL2078;IL2079;IL2080;IL2081;IL2082;IL2083;IL2084;IL2085;IL2086;IL2087;IL2088;IL2089;IL2090;IL2091;IL2092;IL2093;IL2094;IL2095;IL2096;IL2097;IL2098;IL2099;IL2100;IL2101;IL2102;IL2103;IL2104;IL2105;IL2106;IL2107;IL2108;IL2109;IL2110;IL2111;IL2112;IL2113;IL2114;IL2115;IL2116;IL2117;IL2118;IL2119;IL2120;IL2121;IL2122;IL2123;IL2124;IL2125;IL2126;IL2127;IL2128;IL2129;IL2130;IL2131;IL2132;IL2133;IL2134;IL2135;IL2136;IL2137;IL2138;IL2139;IL2140;IL2141;IL2142;IL2143;IL2144;IL2145;IL2146;IL2147;IL2148;IL2149;IL2150;IL2151;IL2152;IL2153;IL2154;IL2155;IL2156;IL2157 - - $(WarningsAsErrors);IL3050;IL3051;IL3052;IL3053;IL3054;IL3055;IL3056 - - - - $(WarningsAsErrors);CA1420;CA1421 - + diff --git a/build/WarnAsErrors.props b/build/WarnAsErrors.props deleted file mode 100644 index eaab7bd00c..0000000000 --- a/build/WarnAsErrors.props +++ /dev/null @@ -1,23 +0,0 @@ - - - - - $(WarningsNotAsErrors);CS0649 - - $(WarningsNotAsErrors);CS0162 - - $(WarningsNotAsErrors);CA2211 - - $(WarningsNotAsErrors);CA1821 - - $(WarningsNotAsErrors);CA1823 - - $(WarningsNotAsErrors);AVLN2203 - - $(WarningsNotAsErrors);AVLN2205 - - $(WarningsNotAsErrors);AVLN2207 - - $(WarningsNotAsErrors);AVLN2208 - - diff --git a/build/XUnit.props b/build/XUnit.props index 4b00869d5b..5c63ed69db 100644 --- a/build/XUnit.props +++ b/build/XUnit.props @@ -1,18 +1,13 @@  + - - - - - - - - - + + $(MSBuildThisFileDirectory)\avalonia.snk False $(NoWarn);CS8002 + diff --git a/docs/build.md b/docs/build.md index cef5ed3e10..2285e56d01 100644 --- a/docs/build.md +++ b/docs/build.md @@ -71,7 +71,7 @@ And run tests: Or if you need to create nuget packages as well (it will compile and run tests automatically): `nuke --target Package --configuration Release` -Alternatively, you can run nuke build direclty without installing Nuke global tool: +Alternatively, you can run nuke build directly without installing Nuke global tool: `dotnet run --project nukebuild/_build.csproj -- --configuration Debug` # Linux/macOS diff --git a/external/Avalonia.Controls.DataGrid b/external/Avalonia.Controls.DataGrid deleted file mode 160000 index 85a0b32ef6..0000000000 --- a/external/Avalonia.Controls.DataGrid +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 85a0b32ef6d963c1d67619ca3e2f6da0bc43ac9a diff --git a/external/Numerge b/external/Numerge index 9738c6121f..5530e1cbe9 160000 --- a/external/Numerge +++ b/external/Numerge @@ -1 +1 @@ -Subproject commit 9738c6121fdd143c78d3e25686a7e4e13c00f586 +Subproject commit 5530e1cbe9e105ff4ebc9da1f4af3253a8756754 diff --git a/global.json b/global.json index 60d847ac0c..3773c7d736 100644 --- a/global.json +++ b/global.json @@ -1,8 +1,11 @@ { "sdk": { - "version": "10.0.100", + "version": "10.0.101", "rollForward": "latestFeature" }, + "test": { + "runner": "Microsoft.Testing.Platform" + }, "msbuild-sdks": { "Microsoft.Build.Traversal": "4.1.0" } diff --git a/native/Avalonia.Native/src/OSX/AvnAccessibility.h b/native/Avalonia.Native/src/OSX/AvnAccessibility.h index 6658d8523e..4f8b50ecc5 100644 --- a/native/Avalonia.Native/src/OSX/AvnAccessibility.h +++ b/native/Avalonia.Native/src/OSX/AvnAccessibility.h @@ -7,7 +7,6 @@ @protocol AvnAccessibility @required - (void) raiseChildrenChanged; -@optional - (void) raiseFocusChanged; - (void) raisePropertyChanged:(AvnAutomationProperty)property; @end diff --git a/native/Avalonia.Native/src/OSX/AvnView.mm b/native/Avalonia.Native/src/OSX/AvnView.mm index d4942afced..600dca865f 100644 --- a/native/Avalonia.Native/src/OSX/AvnView.mm +++ b/native/Avalonia.Native/src/OSX/AvnView.mm @@ -42,7 +42,8 @@ - (void) updateRenderTarget { if(_currentRenderTarget) { - [_currentRenderTarget resize:_lastPixelSize withScale:static_cast([[self window] backingScaleFactor])]; + AvnPixelSize size { MAX(_lastPixelSize.Width, 1), MAX(_lastPixelSize.Height, 1) }; + [_currentRenderTarget resize:size withScale:static_cast([[self window] backingScaleFactor])]; [self setNeedsDisplayInRect:[self frame]]; } } @@ -854,9 +855,10 @@ static void ConvertTilt(NSPoint tilt, float* xTilt, float* yTilt) - (NSDragOperation)triggerAvnDragEvent: (AvnDragEventType) type info: (id )info { - auto localPoint = [self convertPoint:[info draggingLocation] toView:self]; - auto avnPoint = ToAvnPoint(localPoint); - auto point = [self translateLocalPoint:avnPoint]; + NSPoint eventLocation = [info draggingLocation]; + auto viewLocation = [self convertPoint:NSMakePoint(0, 0) toView:nil]; + auto localPoint = NSMakePoint(eventLocation.x - viewLocation.x, viewLocation.y - eventLocation.y); + auto point = ToAvnPoint(localPoint); auto modifiers = [self getModifiers:[[NSApp currentEvent] modifierFlags]]; NSDragOperation nsop = [info draggingSourceOperationMask]; diff --git a/native/Avalonia.Native/src/OSX/AvnWindow.mm b/native/Avalonia.Native/src/OSX/AvnWindow.mm index 6d49fc85e0..1e7c98cb3a 100644 --- a/native/Avalonia.Native/src/OSX/AvnWindow.mm +++ b/native/Avalonia.Native/src/OSX/AvnWindow.mm @@ -656,5 +656,9 @@ NSAccessibilityPostNotification(focused, NSAccessibilityFocusedUIElementChangedNotification); } +- (void)raisePropertyChanged:(AvnAutomationProperty)property +{ +} + @end diff --git a/native/Avalonia.Native/src/OSX/automation.mm b/native/Avalonia.Native/src/OSX/automation.mm index 30e1f5ea00..5cd4edaa54 100644 --- a/native/Avalonia.Native/src/OSX/automation.mm +++ b/native/Avalonia.Native/src/OSX/automation.mm @@ -11,6 +11,7 @@ IAvnAutomationPeer* _peer; AvnAutomationNode* _node; NSMutableArray* _children; + NSArray* _attributeNames; } + (NSAccessibilityElement *)acquire:(IAvnAutomationPeer *)peer @@ -126,6 +127,7 @@ case AutomationHeaderItem: return NSAccessibilityButtonRole; case AutomationTable: return NSAccessibilityTableRole; case AutomationTitleBar: return NSAccessibilityGroupRole; + case AutomationExpander: return NSAccessibilityDisclosureTriangleRole; // Treat unknown roles as generic group container items. Returning // NSAccessibilityUnknownRole is also possible but makes the screen // reader focus on the item instead of passing focus to child items. @@ -165,6 +167,32 @@ return NSAccessibilityRoleDescription([self accessibilityRole], [self accessibilitySubrole]); } +// Note: Apple has deprecated this API, but it's still used to set attributes not supported by NSAccessibility +- (NSArray *)accessibilityAttributeNames +{ + if (_attributeNames == nil) + { + _attributeNames = @[ + @"AXARIALive", // kAXARIALiveAttribute + ]; + } + return _attributeNames; +} + +- (id)accessibilityAttributeValue:(NSAccessibilityAttributeName)attribute +{ + if ([attribute isEqualToString:@"AXARIALive" /* kAXARIALiveAttribute */]) + { + switch (_peer->GetLiveSetting()) + { + case LiveSettingPolite: return @"polite"; + case LiveSettingAssertive: return @"assertive"; + } + return nil; + } + return nil; +} + - (NSString *)accessibilityIdentifier { return GetNSStringAndRelease(_peer->GetAutomationId()); @@ -420,8 +448,15 @@ @{ NSAccessibilityUIElementsKey: [changed allObjects]}); } -- (void)raisePropertyChanged +- (void)raisePropertyChanged:(AvnAutomationProperty)property +{ + if (property == AutomationPeer_Name && _peer->GetLiveSetting() != LiveSettingOff) + [self raiseLiveRegionChanged]; +} + +- (void)raiseLiveRegionChanged { + NSAccessibilityPostNotification(self, @"AXLiveRegionChanged" /* kAXLiveRegionChangedNotification */); } - (void)setAccessibilityFocused:(BOOL)accessibilityFocused diff --git a/nukebuild/.editorconfig b/nukebuild/.editorconfig index c11849c8e9..d6009b3c0f 100644 --- a/nukebuild/.editorconfig +++ b/nukebuild/.editorconfig @@ -6,12 +6,3 @@ root = false # C# files [*.cs] dotnet_style_require_accessibility_modifiers = never - -[{il-repack,Numerge}/**/*.cs] -dotnet_diagnostic.CA1304.severity = none -dotnet_diagnostic.CA1815.severity = none -dotnet_diagnostic.CA1820.severity = none -dotnet_diagnostic.CA1825.severity = none -dotnet_diagnostic.CA1829.severity = none -dotnet_diagnostic.CA1847.severity = none -dotnet_diagnostic.SYSLIB0017.severity = none diff --git a/nukebuild/ApiDiffHelper.cs b/nukebuild/ApiDiffHelper.cs index 4a51630557..d16495969e 100644 --- a/nukebuild/ApiDiffHelper.cs +++ b/nukebuild/ApiDiffHelper.cs @@ -304,44 +304,95 @@ public static class ApiDiffHelper { using var packageReader = new PackageArchiveReader(currentArchive); packageId = packageReader.NuspecReader.GetId(); + + baselineFolderPath = outputFolderPath / "baseline" / packageId; + Directory.CreateDirectory(baselineFolderPath); + currentFolderPath = outputFolderPath / "current" / packageId; + Directory.CreateDirectory(currentFolderPath); + currentFolderNames = ExtractDiffableAssembliesFromPackage(currentArchive, currentFolderPath); } - // Download baseline package - memoryStream.Position = 0L; - memoryStream.SetLength(0L); - await DownloadBaselinePackageAsync(memoryStream, downloadContext, packageId, baselineVersion); - memoryStream.Position = 0L; + var packageExists = await downloadContext.FindPackageByIdResource.DoesPackageExistAsync( + packageId, + baselineVersion, + downloadContext.CacheContext, + NullLogger.Instance, + CancellationToken.None); - // Extract baseline package - using (var baselineArchive = new ZipArchive(memoryStream, ZipArchiveMode.Read, leaveOpen: true)) + if (packageExists) { - baselineFolderPath = outputFolderPath / "baseline" / packageId; + // Download baseline package + memoryStream.Position = 0L; + memoryStream.SetLength(0L); + await DownloadBaselinePackageAsync(memoryStream, downloadContext, packageId, baselineVersion); + memoryStream.Position = 0L; + + // Extract baseline package + using var baselineArchive = new ZipArchive(memoryStream, ZipArchiveMode.Read, leaveOpen: true); baselineFolderNames = ExtractDiffableAssembliesFromPackage(baselineArchive, baselineFolderPath); } + else + { + Information("Baseline package {Id} {Version} does not exist. Assuming new package.", packageId, baselineVersion); + baselineFolderNames = []; + } if (currentFolderNames.Count == 0 && baselineFolderNames.Count == 0) continue; var frameworkDiffs = new List(); + // Match frameworks foreach (var (framework, currentFolderName) in currentFolderNames) { - // Ignore new frameworks that didn't exist in the baseline package. Empty folders make the ApiDiff tool crash. if (!baselineFolderNames.TryGetValue(framework, out var baselineFolderName)) - continue; + baselineFolderName = currentFolderName; - frameworkDiffs.Add(new FrameworkDiffInfo( + var frameworkDiff = new FrameworkDiffInfo( framework, baselineFolderPath / FolderLib / baselineFolderName, - currentFolderPath / FolderLib / currentFolderName)); + currentFolderPath / FolderLib / currentFolderName); + + EnsureAssemblies(frameworkDiff); + + frameworkDiffs.Add(frameworkDiff); } packageDiffs.Add(new PackageDiffInfo(packageId, [..frameworkDiffs])); } return new GlobalDiffInfo(baselineVersion, currentVersion, packageDiffs.DrainToImmutable()); + + // Ensure that both sides of a framework diff have matching assemblies. + // For any missing, generate an empty assembly to diff against. + // (The API diff tool supports added and removed assemblies in theory but actually throws if one side doesn't have any.) + static void EnsureAssemblies(FrameworkDiffInfo frameworkDiff) + { + Directory.CreateDirectory(frameworkDiff.BaselineFolderPath); + Directory.CreateDirectory(frameworkDiff.CurrentFolderPath); + + var baselineFileNames = GetFileNames(frameworkDiff.BaselineFolderPath); + var currentFileNames = GetFileNames(frameworkDiff.CurrentFolderPath); + + GenerateMissingAssemblies(currentFileNames.Except(baselineFileNames), frameworkDiff.BaselineFolderPath); + GenerateMissingAssemblies(baselineFileNames.Except(currentFileNames), frameworkDiff.CurrentFolderPath); + + static string[] GetFileNames(string folderPath) + => Directory.EnumerateFiles(folderPath, "*.dll").Select(Path.GetFileName)!.ToArray(); + + void GenerateMissingAssemblies(IEnumerable missingFileNames, string folderPath) + { + foreach (var missingFileName in missingFileNames) + { + GenerateEmptyAssembly( + Path.GetFileNameWithoutExtension(missingFileName), + frameworkDiff.Framework.GetShortFolderName(), + Path.Join(folderPath, missingFileName)); + } + } + } } static async Task CreateNuGetDownloadContextAsync() @@ -453,6 +504,44 @@ public static class ApiDiffHelper value; } + static void GenerateEmptyAssembly(string name, string framework, string outputFilePath) + { + var projectContents = + $""" + + + {framework} + Release + None + + + """; + + var tempDirPath = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString()); + var projectFilePath = Path.Join(tempDirPath, $"{name}.csproj"); + + Directory.CreateDirectory(tempDirPath); + + try + { + File.WriteAllText(projectFilePath, projectContents); + + using var process = ProcessTasks.StartProcess( + "dotnet", + $"build \"{projectFilePath}\" --output \"{tempDirPath}\"", + tempDirPath); + + process.AssertZeroExitCode(); + + File.Copy(Path.Join(tempDirPath, $"{name}.dll"), outputFilePath); + } + finally + { + if (Directory.Exists(tempDirPath)) + Directory.Delete(tempDirPath, true); + } + } + public sealed class GlobalDiffInfo( NuGetVersion baselineVersion, NuGetVersion currentVersion, diff --git a/nukebuild/Build.cs b/nukebuild/Build.cs index d6d636aac1..41c5cbe0cf 100644 --- a/nukebuild/Build.cs +++ b/nukebuild/Build.cs @@ -36,13 +36,13 @@ partial class Build : NukeBuild [NuGetPackage("Microsoft.DotNet.ApiCompat.Tool", "Microsoft.DotNet.ApiCompat.Tool.dll", Framework = "net8.0")] Tool ApiCompatTool; - + [NuGetPackage("Microsoft.DotNet.ApiDiff.Tool", "Microsoft.DotNet.ApiDiff.Tool.dll", Framework = "net8.0")] Tool ApiDiffTool; [NuGetPackage("dotnet-ilrepack", "ILRepackTool.dll", Framework = "net8.0")] Tool IlRepackTool; - + protected override void OnBuildInitialized() { Parameters = new BuildParameters(this, ScheduledTargets.Contains(BuildToNuGetCache)); @@ -57,6 +57,7 @@ partial class Build : NukeBuild Information("Repository Name: " + Parameters.RepositoryName); Information("Repository Branch: " + Parameters.RepositoryBranch); } + Information("Configuration: " + Parameters.Configuration); Information("IsLocalBuild: " + Parameters.IsLocalBuild); Information("IsRunningOnUnix: " + Parameters.IsRunningOnUnix); @@ -73,8 +74,9 @@ partial class Build : NukeBuild void ExecWait(string preamble, string command, string args) { Console.WriteLine(preamble); - Process.Start(new ProcessStartInfo(command, args) {UseShellExecute = false}).WaitForExit(); + Process.Start(new ProcessStartInfo(command, args) { UseShellExecute = false }).WaitForExit(); } + ExecWait("dotnet version:", "dotnet", "--info"); ExecWait("dotnet workloads:", "dotnet", "workload list"); Information("Processor count: " + Environment.ProcessorCount); @@ -99,6 +101,7 @@ partial class Build : NukeBuild .AddProperty("SkipBuildingTests", "True"); return c; } + DotNetBuildSettings ApplySetting(DotNetBuildSettings c, Configure configurator = null) => ApplySettingCore(c).Build.Apply(configurator); @@ -108,6 +111,9 @@ partial class Build : NukeBuild DotNetTestSettings ApplySetting(DotNetTestSettings c, Configure configurator = null) => ApplySettingCore(c).Test.Apply(configurator); + DotNetRunSettings ApplySetting(DotNetRunSettings c, Configure configurator = null) => + ApplySettingCore(c).Run.Apply(configurator); + Target Clean => _ => _.Executes(() => { foreach (var buildDir in Parameters.BuildDirs) @@ -129,6 +135,17 @@ partial class Build : NukeBuild } }); + // Ensure that Bun.Official.Tool is downloaded at least once on CI to work around https://github.com/dotnet/sdk/issues/51831 + Target InitDnx => _ => _ + .Executes(() => + { + var process = ProcessTasks.StartProcess( + "dnx", + "Bun.Unofficial.Tool --yes -- install", + $"{RootDirectory}/src/Browser/Avalonia.Browser/webapp"); + process.AssertZeroExitCode(); + }); + Target CompileNative => _ => _ .DependsOn(Clean) .DependsOn(GenerateCppHeaders) @@ -141,7 +158,7 @@ partial class Build : NukeBuild }); Target Compile => _ => _ - .DependsOn(Clean, CompileNative) + .DependsOn(Clean, CompileNative, InitDnx) .Executes(() => { DotNetBuild(c => ApplySetting(c) @@ -168,7 +185,10 @@ partial class Build : NukeBuild { RunCoreTest(projectName, (project, tfm) => { - DotNetTest(c => ApplySetting(c, project,tfm)); + // NOTE: Nuke DotNetTest doesn't support Microsoft.Testing.Platform yet. + // Issue: https://github.com/nuke-build/nuke/issues/1584. + // However, we can easily use DotNetRun instead since MTP projects are executables. + DotNetRun(c => ApplySetting(c, project, tfm)); }); } @@ -222,15 +242,17 @@ partial class Build : NukeBuild } } - DotNetTestSettings ApplySetting(DotNetTestSettings settings, string project, string tfm) => + DotNetRunSettings ApplySetting(DotNetRunSettings settings, string project, string tfm) => ApplySetting(settings) .SetProjectFile(project) .SetFramework(tfm) .EnableNoBuild() .EnableNoRestore() + // Disable progress output (works like terminal logger which isn't so nice in CI). + // See https://github.com/microsoft/testfx/issues/7056 + .AddApplicationArguments("--no-progress") .When(_ => Parameters.PublishTestResults, _ => _ - .SetLoggers("trx") - .SetResultsDirectory(Parameters.TestResultsRoot)); + .AddApplicationArguments("--report-trx", "--results-directory", Parameters.TestResultsRoot)); Target RunHtmlPreviewerTests => _ => _ .OnlyWhenStatic(() => !(Parameters.SkipTests)) @@ -308,7 +330,7 @@ partial class Build : NukeBuild BuildTasksPatcher.PatchBuildTasksInPackage(Parameters.NugetIntermediateRoot / "Avalonia.Build.Tasks." + Parameters.Version + ".nupkg", IlRepackTool); - var config = Numerge.MergeConfiguration.LoadFile(RootDirectory / "nukebuild" / "numerge.config"); + var config = Numerge.MergeConfiguration.LoadFile(RootDirectory / "nukebuild" / "numerge.json"); Parameters.NugetRoot.CreateOrCleanDirectory(); if(!Numerge.NugetPackageMerger.Merge(Parameters.NugetIntermediateRoot, Parameters.NugetRoot, config, new NumergeNukeLogger())) @@ -322,11 +344,14 @@ partial class Build : NukeBuild .DependsOn(CreateNugetPackages) .Executes(async () => { + var apiDiffPath = Parameters.ArtifactsDir / "api-diff"; + apiDiffPath.DeleteDirectory(); + GlobalDiff = await ApiDiffHelper.DownloadAndExtractPackagesAsync( Directory.EnumerateFiles(Parameters.NugetRoot, "*.nupkg").Select(path => (AbsolutePath)path), NuGetVersion.Parse(Parameters.Version), Parameters.IsReleaseBranch, - Parameters.ArtifactsDir / "api-diff" / "assemblies", + apiDiffPath / "assemblies", Parameters.ForceApiValidationBaseline is { } forcedBaseline ? NuGetVersion.Parse(forcedBaseline) : null); }); diff --git a/nukebuild/DotNetConfigHelper.cs b/nukebuild/DotNetConfigHelper.cs index 9d43261616..b5315b3f5a 100644 --- a/nukebuild/DotNetConfigHelper.cs +++ b/nukebuild/DotNetConfigHelper.cs @@ -7,6 +7,7 @@ public class DotNetConfigHelper public DotNetBuildSettings Build; public DotNetPackSettings Pack; public DotNetTestSettings Test; + public DotNetRunSettings Run; public DotNetConfigHelper(DotNetBuildSettings s) { @@ -23,6 +24,11 @@ public class DotNetConfigHelper Test = s; } + public DotNetConfigHelper(DotNetRunSettings s) + { + Run = s; + } + public DotNetConfigHelper AddProperty(string key, bool value) => AddProperty(key, value.ToString(CultureInfo.InvariantCulture).ToLowerInvariant()); public DotNetConfigHelper AddProperty(string key, string value) @@ -30,6 +36,7 @@ public class DotNetConfigHelper Build = Build?.AddProperty(key, value); Pack = Pack?.AddProperty(key, value); Test = Test?.AddProperty(key, value); + Run = Run?.AddProperty(key, value); return this; } @@ -39,6 +46,7 @@ public class DotNetConfigHelper Build = Build?.SetConfiguration(configuration); Pack = Pack?.SetConfiguration(configuration); Test = Test?.SetConfiguration(configuration); + Run = Run?.SetConfiguration(configuration); return this; } @@ -47,10 +55,12 @@ public class DotNetConfigHelper Build = Build?.SetVerbosity(verbosity); Pack = Pack?.SetVerbosity(verbosity); Test = Test?.SetVerbosity(verbosity); + Run = Run?.SetVerbosity(verbosity); return this; } public static implicit operator DotNetConfigHelper(DotNetBuildSettings s) => new DotNetConfigHelper(s); public static implicit operator DotNetConfigHelper(DotNetPackSettings s) => new DotNetConfigHelper(s); public static implicit operator DotNetConfigHelper(DotNetTestSettings s) => new DotNetConfigHelper(s); + public static implicit operator DotNetConfigHelper(DotNetRunSettings s) => new DotNetConfigHelper(s); } diff --git a/nukebuild/_build.csproj b/nukebuild/_build.csproj index b57414b32e..c3ee103e73 100644 --- a/nukebuild/_build.csproj +++ b/nukebuild/_build.csproj @@ -4,23 +4,21 @@ false False - $(NoWarn);CS0649;CS0169;SYSLIB0011 + $(NoWarn);CS0649;CA1847 1 $(AvsCurrentTargetFramework) - - true - + - - - + + + - + diff --git a/nukebuild/numerge.config b/nukebuild/numerge.json similarity index 70% rename from nukebuild/numerge.config rename to nukebuild/numerge.json index 8af0af7ff0..392348a044 100644 --- a/nukebuild/numerge.config +++ b/nukebuild/numerge.json @@ -18,7 +18,17 @@ "DoNotMergeDependencies": true }, { - "Id": "Avalonia.Analyzers", + "Id": "Avalonia.Analyzers.CSharp", + "IgnoreMissingFrameworkBinaries": true, + "DoNotMergeDependencies": true + }, + { + "Id": "Avalonia.Analyzers.VisualBasic", + "IgnoreMissingFrameworkBinaries": true, + "DoNotMergeDependencies": true + }, + { + "Id": "Avalonia.Analyzers.CodeFixes.CSharp", "IgnoreMissingFrameworkBinaries": true, "DoNotMergeDependencies": true } diff --git a/packages/Avalonia/Avalonia.csproj b/packages/Avalonia/Avalonia.csproj index 1cd1245d3f..e59e72f13b 100644 --- a/packages/Avalonia/Avalonia.csproj +++ b/packages/Avalonia/Avalonia.csproj @@ -9,11 +9,19 @@ - - + + diff --git a/packages/Avalonia/Avalonia.props b/packages/Avalonia/Avalonia.props index 78656a1726..c36f495ea5 100644 --- a/packages/Avalonia/Avalonia.props +++ b/packages/Avalonia/Avalonia.props @@ -1,6 +1,6 @@ - $(MSBuildThisFileDirectory)\..\tools\$(AvsCurrentTargetFramework)\designer\Avalonia.Designer.HostApp.dll + $(MSBuildThisFileDirectory)\..\tools\net8.0\designer\Avalonia.Designer.HostApp.dll $(MSBuildThisFileDirectory)\..\tools\netstandard2.0\Avalonia.Build.Tasks.dll $(UsedAvaloniaProducts);AvaloniaUI true diff --git a/packages/Avalonia/AvaloniaBuildTasks.targets b/packages/Avalonia/AvaloniaBuildTasks.targets index 8fe77a095d..d3750935f9 100644 --- a/packages/Avalonia/AvaloniaBuildTasks.targets +++ b/packages/Avalonia/AvaloniaBuildTasks.targets @@ -134,6 +134,8 @@ false false false + true + false @@ -162,6 +164,7 @@ DelaySign="$(DelaySign)" SkipXamlCompilation="$(_AvaloniaSkipXamlCompilation)" DebuggerLaunch="$(AvaloniaXamlIlDebuggerLaunch)" + CreateSourceInfo="$(AvaloniaXamlCreateSourceInfo)" DefaultCompileBindings="$(AvaloniaUseCompiledBindingsByDefault)" VerboseExceptions="$(AvaloniaXamlVerboseExceptions)" AnalyzerConfigFiles="@(EditorConfigFiles)"/> diff --git a/packages/Avalonia/AvaloniaRules.Project.xml b/packages/Avalonia/AvaloniaRules.Project.xml index b69ea6de17..0a5c1b8243 100644 --- a/packages/Avalonia/AvaloniaRules.Project.xml +++ b/packages/Avalonia/AvaloniaRules.Project.xml @@ -31,6 +31,11 @@ Description="Allow debug XAML compilation" Category="Debug" /> + + WinExe $(AvsCurrentTargetFramework) - enable app.manifest - diff --git a/samples/AppWithoutLifetime/MainWindow.axaml.cs b/samples/AppWithoutLifetime/MainWindow.axaml.cs index df3ed3cea0..a92bd31600 100644 --- a/samples/AppWithoutLifetime/MainWindow.axaml.cs +++ b/samples/AppWithoutLifetime/MainWindow.axaml.cs @@ -1,4 +1,3 @@ -using Avalonia; using Avalonia.Controls; using Avalonia.Interactivity; using Avalonia.Markup.Xaml; @@ -17,13 +16,6 @@ public partial class MainWindow : Window AvaloniaXamlLoader.Load(this); } - /// - protected override void OnLoaded(RoutedEventArgs e) - { - this.AttachDevTools(); - base.OnLoaded(e); - } - public void Open(object sender, RoutedEventArgs e) { new Sub().Show(this); diff --git a/samples/AppWithoutLifetime/Program.cs b/samples/AppWithoutLifetime/Program.cs index 9404b9f01a..60ab32824e 100644 --- a/samples/AppWithoutLifetime/Program.cs +++ b/samples/AppWithoutLifetime/Program.cs @@ -24,5 +24,6 @@ class Program public static AppBuilder BuildAvaloniaApp() => AppBuilder.Configure() .UsePlatformDetect() + .WithDeveloperTools() .LogToTrace(); } diff --git a/samples/AppWithoutLifetime/Sub.axaml.cs b/samples/AppWithoutLifetime/Sub.axaml.cs index 3a7ce787bc..e0d07fb338 100644 --- a/samples/AppWithoutLifetime/Sub.axaml.cs +++ b/samples/AppWithoutLifetime/Sub.axaml.cs @@ -1,6 +1,4 @@ -using Avalonia; using Avalonia.Controls; -using Avalonia.Interactivity; using Avalonia.Markup.Xaml; namespace AppWithoutLifetime; @@ -16,11 +14,4 @@ public partial class Sub : Window { AvaloniaXamlLoader.Load(this); } - - /// - protected override void OnLoaded(RoutedEventArgs e) - { - this.AttachDevTools(); - base.OnLoaded(e); - } } diff --git a/samples/BindingDemo/App.xaml.cs b/samples/BindingDemo/App.xaml.cs index 8a5364c70b..e76f61ac63 100644 --- a/samples/BindingDemo/App.xaml.cs +++ b/samples/BindingDemo/App.xaml.cs @@ -24,6 +24,7 @@ namespace BindingDemo public static AppBuilder BuildAvaloniaApp() => AppBuilder.Configure() .UsePlatformDetect() + .WithDeveloperTools() .LogToTrace(); } } diff --git a/samples/BindingDemo/BindingDemo.csproj b/samples/BindingDemo/BindingDemo.csproj index 33c6aa1440..b12e350814 100644 --- a/samples/BindingDemo/BindingDemo.csproj +++ b/samples/BindingDemo/BindingDemo.csproj @@ -5,7 +5,6 @@ - diff --git a/samples/BindingDemo/GenericMarkupExtension.cs b/samples/BindingDemo/GenericMarkupExtension.cs index aed0700cb8..be7d82e0d5 100644 --- a/samples/BindingDemo/GenericMarkupExtension.cs +++ b/samples/BindingDemo/GenericMarkupExtension.cs @@ -5,7 +5,7 @@ namespace BindingDemo; internal class GenericMarkupExtension : MarkupExtension { - public T Value { get; set; } + public T? Value { get; set; } public override object ProvideValue(IServiceProvider serviceProvider) { diff --git a/samples/BindingDemo/MainWindow.xaml b/samples/BindingDemo/MainWindow.xaml index 9d68c8da8a..3ff80069f4 100644 --- a/samples/BindingDemo/MainWindow.xaml +++ b/samples/BindingDemo/MainWindow.xaml @@ -1,7 +1,7 @@ - + - - - - + + + + - + - + !BooleanString !!BooleanString @@ -43,24 +43,24 @@ - + - - - - + - + @@ -91,19 +91,19 @@ - + - + - - + + - + - - + + diff --git a/samples/BindingDemo/MainWindow.xaml.cs b/samples/BindingDemo/MainWindow.xaml.cs index 36d4feb108..6a7c1e877d 100644 --- a/samples/BindingDemo/MainWindow.xaml.cs +++ b/samples/BindingDemo/MainWindow.xaml.cs @@ -1,5 +1,4 @@ using BindingDemo.ViewModels; -using Avalonia; using Avalonia.Controls; using Avalonia.Markup.Xaml; @@ -12,7 +11,6 @@ namespace BindingDemo Resources["SharedItem"] = new MainWindowViewModel.TestItem() { Value = "shared" }; this.InitializeComponent(); this.DataContext = new MainWindowViewModel(); - this.AttachDevTools(); } private void InitializeComponent() diff --git a/samples/BindingDemo/ViewModels/DataAnnotationsErrorViewModel.cs b/samples/BindingDemo/ViewModels/DataAnnotationsErrorViewModel.cs index 391d1791d3..a51139f8ac 100644 --- a/samples/BindingDemo/ViewModels/DataAnnotationsErrorViewModel.cs +++ b/samples/BindingDemo/ViewModels/DataAnnotationsErrorViewModel.cs @@ -6,7 +6,7 @@ namespace BindingDemo.ViewModels { [Phone] [MaxLength(10)] - public string PhoneNumber { get; set; } + public string? PhoneNumber { get; set; } [Range(0, 9)] public int LessThan10 { get; set; } diff --git a/samples/BindingDemo/ViewModels/IndeiErrorViewModel.cs b/samples/BindingDemo/ViewModels/IndeiErrorViewModel.cs index 9ae8d9558f..7273da38c8 100644 --- a/samples/BindingDemo/ViewModels/IndeiErrorViewModel.cs +++ b/samples/BindingDemo/ViewModels/IndeiErrorViewModel.cs @@ -9,7 +9,7 @@ namespace BindingDemo.ViewModels { private int _maximum = 10; private int _value; - private string _valueError; + private string? _valueError; public IndeiErrorViewModel() { @@ -34,16 +34,16 @@ namespace BindingDemo.ViewModels set { this.RaiseAndSetIfChanged(ref _value, value); } } - public event EventHandler ErrorsChanged; + public event EventHandler? ErrorsChanged; - public IEnumerable GetErrors(string propertyName) + public IEnumerable GetErrors(string? propertyName) { switch (propertyName) { case nameof(Value): return new[] { _valueError }; default: - return null; + return Array.Empty(); } } diff --git a/samples/BindingDemo/ViewModels/MainWindowViewModel.cs b/samples/BindingDemo/ViewModels/MainWindowViewModel.cs index eb1a007695..3fce67a6f6 100644 --- a/samples/BindingDemo/ViewModels/MainWindowViewModel.cs +++ b/samples/BindingDemo/ViewModels/MainWindowViewModel.cs @@ -16,10 +16,10 @@ namespace BindingDemo.ViewModels { private string _booleanString = "True"; private double _doubleValue = 5.0; - private string _stringValue = "Simple Binding"; + private string? _stringValue = "Simple Binding"; private bool _booleanFlag = false; - private string _currentTime; - private NestedCommandViewModel _nested; + private string? _currentTime; + private NestedCommandViewModel? _nested; public MainWindowViewModel() { @@ -74,7 +74,7 @@ namespace BindingDemo.ViewModels set { this.RaiseAndSetIfChanged(ref _doubleValue, value); } } - public string StringValue + public string? StringValue { get { return _stringValue; } set { this.RaiseAndSetIfChanged(ref _stringValue, value); } @@ -86,7 +86,7 @@ namespace BindingDemo.ViewModels set { this.RaiseAndSetIfChanged(ref _booleanFlag, value); } } - public string CurrentTime + public string? CurrentTime { get { return _currentTime; } private set { this.RaiseAndSetIfChanged(ref _currentTime, value); } @@ -99,7 +99,7 @@ namespace BindingDemo.ViewModels public ExceptionErrorViewModel ExceptionDataValidation { get; } = new ExceptionErrorViewModel(); public IndeiErrorViewModel IndeiDataValidation { get; } = new IndeiErrorViewModel(); - public NestedCommandViewModel NestedModel + public NestedCommandViewModel? NestedModel { get { return _nested; } private set { this.RaiseAndSetIfChanged(ref _nested, value); } @@ -119,16 +119,16 @@ namespace BindingDemo.ViewModels // Nested class, jsut so we can test it in XAML public class TestItem : ViewModelBase { - private T _value; - private string _detail; + private T? _value; + private string? _detail; - public T Value + public T? Value { get { return _value; } set { this.RaiseAndSetIfChanged(ref this._value, value); } } - public string Detail + public string? Detail { get { return _detail; } set { this.RaiseAndSetIfChanged(ref this._detail, value); } diff --git a/samples/ControlCatalog.Android/ControlCatalog.Android.csproj b/samples/ControlCatalog.Android/ControlCatalog.Android.csproj index f60ba69395..c2fe16970a 100644 --- a/samples/ControlCatalog.Android/ControlCatalog.Android.csproj +++ b/samples/ControlCatalog.Android/ControlCatalog.Android.csproj @@ -3,7 +3,6 @@ $(AvsCurrentAndroidTargetFramework) $(AvsMinSupportedAndroidVersion) Exe - enable com.Avalonia.ControlCatalog 1 1.0 @@ -26,7 +25,7 @@ - + diff --git a/samples/ControlCatalog.Android/MainActivity.cs b/samples/ControlCatalog.Android/MainActivity.cs index 4963d12997..b9f2d16168 100644 --- a/samples/ControlCatalog.Android/MainActivity.cs +++ b/samples/ControlCatalog.Android/MainActivity.cs @@ -10,7 +10,7 @@ using static Android.Content.Intent; namespace ControlCatalog.Android { - [Activity(Name = "com.Avalonia.ControlCatalog.MainActivity", Label = "ControlCatalog.Android", Theme = "@style/MyTheme.NoActionBar", Icon = "@drawable/icon", MainLauncher = true, Exported = true, ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize | ConfigChanges.UiMode)] + [Activity(Label = "ControlCatalog.Android", Theme = "@style/MyTheme.NoActionBar", Icon = "@drawable/icon", MainLauncher = true, Exported = true, ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize | ConfigChanges.UiMode)] // CategoryLeanbackLauncher is required for Android TV. [IntentFilter(new[] { ActionView }, Categories = new[] { CategoryDefault, CategoryLeanbackLauncher })] public class MainActivity : AvaloniaMainActivity diff --git a/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj b/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj index 9398987837..c951862ad2 100644 --- a/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj +++ b/samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj @@ -20,7 +20,6 @@ - diff --git a/samples/ControlCatalog.Desktop/NativeControls/Gtk/EmbedSample.Gtk.cs b/samples/ControlCatalog.Desktop/NativeControls/Gtk/EmbedSample.Gtk.cs index c42ac73b88..523503cc38 100644 --- a/samples/ControlCatalog.Desktop/NativeControls/Gtk/EmbedSample.Gtk.cs +++ b/samples/ControlCatalog.Desktop/NativeControls/Gtk/EmbedSample.Gtk.cs @@ -9,7 +9,7 @@ namespace ControlCatalog.Desktop; public class EmbedSampleGtk : INativeDemoControl { - private Process _mplayer; + private Process? _mplayer; public IPlatformHandle CreateControl(bool isSecond, IPlatformHandle parent, Func createDefault) { diff --git a/samples/ControlCatalog.Desktop/NativeControls/Mac/MacHelper.cs b/samples/ControlCatalog.Desktop/NativeControls/Mac/MacHelper.cs index 154878e4ff..01325a5fa9 100644 --- a/samples/ControlCatalog.Desktop/NativeControls/Mac/MacHelper.cs +++ b/samples/ControlCatalog.Desktop/NativeControls/Mac/MacHelper.cs @@ -20,7 +20,7 @@ internal class MacHelper internal class MacOSViewHandle : INativeControlHostDestroyableControlHandle { - private NSView _view; + private NSView? _view; public MacOSViewHandle(NSView view) { @@ -32,7 +32,7 @@ internal class MacOSViewHandle : INativeControlHostDestroyableControlHandle public void Destroy() { - _view.Dispose(); + _view?.Dispose(); _view = null; } } diff --git a/samples/ControlCatalog.Desktop/NativeControls/Win/WinApi.cs b/samples/ControlCatalog.Desktop/NativeControls/Win/WinApi.cs index 1bb3879ac3..514f704b30 100644 --- a/samples/ControlCatalog.Desktop/NativeControls/Win/WinApi.cs +++ b/samples/ControlCatalog.Desktop/NativeControls/Win/WinApi.cs @@ -44,7 +44,7 @@ internal unsafe class WinApi [DllImport("kernel32.dll")] - public static extern IntPtr GetModuleHandle(string lpModuleName); + public static extern IntPtr GetModuleHandle(string? lpModuleName); [DllImport("user32.dll", SetLastError = true)] public static extern IntPtr CreateWindowEx( diff --git a/samples/ControlCatalog.Desktop/Program.cs b/samples/ControlCatalog.Desktop/Program.cs index 707ead5f1d..819072db18 100644 --- a/samples/ControlCatalog.Desktop/Program.cs +++ b/samples/ControlCatalog.Desktop/Program.cs @@ -7,10 +7,11 @@ using System.Threading.Tasks; using Avalonia; using Avalonia.Controls; using Avalonia.Controls.ApplicationLifetimes; -using Avalonia.Fonts.Inter; using Avalonia.Headless; +using Avalonia.LinuxFramebuffer; using Avalonia.LinuxFramebuffer.Output; using Avalonia.LogicalTree; +using Avalonia.Platform; using Avalonia.Rendering.Composition; using Avalonia.Threading; using Avalonia.Vulkan; @@ -20,16 +21,9 @@ namespace ControlCatalog.Desktop { static class Program { - private static bool s_useFramebuffer; - [STAThread] static int Main(string[] args) { - if (args.Contains("--fbdev")) - { - s_useFramebuffer = true; - } - if (args.Contains("--wait-for-attach")) { Console.WriteLine("Attach debugger and use 'Set next statement'"); @@ -46,12 +40,27 @@ namespace ControlCatalog.Desktop double GetScaling() { var idx = Array.IndexOf(args, "--scaling"); - if (idx != 0 && args.Length > idx + 1 && + if (idx >= 0 && args.Length > idx + 1 && double.TryParse(args[idx + 1], NumberStyles.Any, CultureInfo.InvariantCulture, out var scaling)) return scaling; return 1; } - if (s_useFramebuffer) + SurfaceOrientation GetOrientation() + { + var idx = Array.IndexOf(args, "--orientation"); + if (idx >= 0 && args.Length > idx + 1 && + Enum.TryParse(args[idx + 1], true, out var orientation)) + return orientation; + return SurfaceOrientation.Rotation0; + } + string? GetCard() + { + var idx = Array.IndexOf(args, "--card"); + if (idx >= 0 && args.Length > idx + 1) + return args[idx + 1]; + return null; + } + if (args.Contains("--fbdev")) { SilenceConsole(); return builder.StartLinuxFbDev(args, new FbDevOutputOptions() @@ -74,12 +83,12 @@ namespace ControlCatalog.Desktop { DispatcherTimer.RunOnce(async () => { - var window = ((IClassicDesktopStyleApplicationLifetime)Application.Current.ApplicationLifetime) - .MainWindow; + var window = ((IClassicDesktopStyleApplicationLifetime)Application.Current!.ApplicationLifetime!) + .MainWindow!; var tc = window.GetLogicalDescendants().OfType().First(); foreach (var page in tc.Items.Cast().ToList()) { - if (page.Header.ToString() == "DatePicker" || page.Header.ToString() == "TreeView") + if (page.Header?.ToString() is "DatePicker" or "TreeView") continue; Console.WriteLine("Selecting " + page.Header); tc.SelectedItem = page; @@ -109,13 +118,17 @@ namespace ControlCatalog.Desktop else if (args.Contains("--drm")) { SilenceConsole(); - return builder.StartLinuxDrm(args, scaling: GetScaling()); + return builder.StartLinuxDrm(args, card: GetCard(), options: new DrmOutputOptions() + { + Scaling = GetScaling(), + Orientation = GetOrientation(), + }); } else if (args.Contains("--dxgi")) { builder.With(new Win32PlatformOptions() { - CompositionMode = new [] { Win32CompositionMode.LowLatencyDxgiSwapChain } + CompositionMode = [Win32CompositionMode.LowLatencyDxgiSwapChain] }); return builder.StartWithClassicDesktopLifetime(args); } @@ -149,24 +162,17 @@ namespace ControlCatalog.Desktop }) .UseSkia() .WithInterFont() + .WithDeveloperTools() .AfterSetup(builder => { - if (!s_useFramebuffer) - { - builder.Instance!.AttachDevTools(new Avalonia.Diagnostics.DevToolsOptions() - { - StartupScreenIndex = 1, - }); - } - - EmbedSample.Implementation = OperatingSystem.IsWindows() ? (INativeDemoControl)new EmbedSampleWin() + EmbedSample.Implementation = OperatingSystem.IsWindows() ? new EmbedSampleWin() : OperatingSystem.IsMacOS() ? new EmbedSampleMac() : OperatingSystem.IsLinux() ? new EmbedSampleGtk() : null; }) .LogToTrace(); - static void SilenceConsole() + private static void SilenceConsole() { new Thread(() => { diff --git a/samples/ControlCatalog/ControlCatalog.csproj b/samples/ControlCatalog/ControlCatalog.csproj index 81caa6b2e4..c71e7a93ad 100644 --- a/samples/ControlCatalog/ControlCatalog.csproj +++ b/samples/ControlCatalog/ControlCatalog.csproj @@ -2,7 +2,6 @@ $(AvsCurrentTargetFramework) true - enable true diff --git a/samples/ControlCatalog/MainView.xaml b/samples/ControlCatalog/MainView.xaml index 5d6b5c6c86..d049e839be 100644 --- a/samples/ControlCatalog/MainView.xaml +++ b/samples/ControlCatalog/MainView.xaml @@ -35,6 +35,9 @@ + + + diff --git a/samples/ControlCatalog/Pages/AutoCompleteBoxPage.xaml b/samples/ControlCatalog/Pages/AutoCompleteBoxPage.xaml index b682ebf51d..35e917f996 100644 --- a/samples/ControlCatalog/Pages/AutoCompleteBoxPage.xaml +++ b/samples/ControlCatalog/Pages/AutoCompleteBoxPage.xaml @@ -39,8 +39,12 @@ - - + + + + + + diff --git a/samples/ControlCatalog/Pages/AutoCompleteBoxPage.xaml.cs b/samples/ControlCatalog/Pages/AutoCompleteBoxPage.xaml.cs index d9e64ecee0..47b6eb7f4a 100644 --- a/samples/ControlCatalog/Pages/AutoCompleteBoxPage.xaml.cs +++ b/samples/ControlCatalog/Pages/AutoCompleteBoxPage.xaml.cs @@ -7,30 +7,12 @@ using Avalonia.Controls; using Avalonia.Data; using Avalonia.Data.Converters; using Avalonia.LogicalTree; +using ControlCatalog.Models; namespace ControlCatalog.Pages { public partial class AutoCompleteBoxPage : UserControl { - public class StateData - { - public string Name { get; private set; } - public string Abbreviation { get; private set; } - public string Capital { get; private set; } - - public StateData(string name, string abbreviatoin, string capital) - { - Name = name; - Abbreviation = abbreviatoin; - Capital = capital; - } - - public override string ToString() - { - return Name; - } - } - private static StateData[] BuildAllStates() { return new StateData[] diff --git a/samples/ControlCatalog/Pages/BitmapCachePage.axaml b/samples/ControlCatalog/Pages/BitmapCachePage.axaml new file mode 100644 index 0000000000..5902be8e51 --- /dev/null +++ b/samples/ControlCatalog/Pages/BitmapCachePage.axaml @@ -0,0 +1,45 @@ + + + + + + + + + Render at scale + + Scale + + Enable clear type + + Snap to device pixels + Subpixel offset X + + + + + + + + + Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. + + + + + + + diff --git a/samples/ControlCatalog/Pages/BitmapCachePage.axaml.cs b/samples/ControlCatalog/Pages/BitmapCachePage.axaml.cs new file mode 100644 index 0000000000..92b3cbec68 --- /dev/null +++ b/samples/ControlCatalog/Pages/BitmapCachePage.axaml.cs @@ -0,0 +1,13 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Markup.Xaml; + +namespace ControlCatalog.Pages; + +public partial class BitmapCachePage : UserControl +{ + public BitmapCachePage() + { + InitializeComponent(); + } +} \ No newline at end of file diff --git a/samples/ControlCatalog/Pages/CalendarDatePickerPage.xaml b/samples/ControlCatalog/Pages/CalendarDatePickerPage.xaml index 7a22c0ddab..8734758d26 100644 --- a/samples/ControlCatalog/Pages/CalendarDatePickerPage.xaml +++ b/samples/ControlCatalog/Pages/CalendarDatePickerPage.xaml @@ -5,7 +5,7 @@ x:Class="ControlCatalog.Pages.CalendarDatePickerPage"> A control for selecting dates with a calendar drop-down - + + PlaceholderText="Placeholder"/> - + PlaceholderText="Floating Placeholder" + UseFloatingPlaceholder="True"/> + + + + - + - + diff --git a/samples/ControlCatalog/Pages/ClipboardPage.xaml b/samples/ControlCatalog/Pages/ClipboardPage.xaml index 80b3f4d1ed..864a520aca 100644 --- a/samples/ControlCatalog/Pages/ClipboardPage.xaml +++ b/samples/ControlCatalog/Pages/ClipboardPage.xaml @@ -1,4 +1,4 @@ - @@ -21,7 +21,7 @@ + PlaceholderText="Text to copy of file names per line" /> diff --git a/samples/ControlCatalog/Pages/DialogsPage.xaml b/samples/ControlCatalog/Pages/DialogsPage.xaml index 7320c1f3d7..e6b3568909 100644 --- a/samples/ControlCatalog/Pages/DialogsPage.xaml +++ b/samples/ControlCatalog/Pages/DialogsPage.xaml @@ -49,26 +49,17 @@ - - - - - - - - - - + - + - + Desktop @@ -80,17 +71,17 @@ - + - + + PlaceholderText="Picked file content" /> diff --git a/samples/ControlCatalog/Pages/DialogsPage.xaml.cs b/samples/ControlCatalog/Pages/DialogsPage.xaml.cs index 0e2ad7d2b9..892e320afc 100644 --- a/samples/ControlCatalog/Pages/DialogsPage.xaml.cs +++ b/samples/ControlCatalog/Pages/DialogsPage.xaml.cs @@ -1,23 +1,14 @@ using System; using System.Buffers; using System.Collections.Generic; -using System.IO; using System.Linq; -using System.Reflection; using System.Security; -using System.Text; using System.Threading.Tasks; using Avalonia; using Avalonia.Controls; -using Avalonia.Controls.Presenters; using Avalonia.Dialogs; using Avalonia.Layout; -using Avalonia.Markup.Xaml; using Avalonia.Platform.Storage; -using Avalonia.Platform.Storage.FileIO; - -#pragma warning disable CS0618 // Type or member is obsolete -#nullable enable namespace ControlCatalog.Pages { @@ -70,14 +61,6 @@ namespace ControlCatalog.Pages }; - List GetFilters() - { - return GetFileTypes()?.Select(f => new FileDialogFilter - { - Name = f.Name, Extensions = f.Patterns!.ToList() - }).ToList() ?? new List(); - } - List? BuildFileTypes() { var selectedItem = (FilterSelector.SelectedItem as ComboBoxItem)?.Content @@ -168,88 +151,12 @@ namespace ControlCatalog.Pages void UpdateSuggestedFilterSelectorState() => suggestedFilterSelector.IsEnabled = useSuggestedFilter.IsChecked == true; - useSuggestedFilter.Checked += (_, _) => UpdateSuggestedFilterSelectorState(); - useSuggestedFilter.Unchecked += (_, _) => UpdateSuggestedFilterSelectorState(); + useSuggestedFilter.IsCheckedChanged += (_, _) => UpdateSuggestedFilterSelectorState(); UpdateSuggestedFilterSelectorState(); FilterSelector.SelectionChanged += (_, _) => UpdateSuggestedFilterSelector(BuildFileTypes()); UpdateSuggestedFilterSelector(BuildFileTypes()); - OpenFile.Click += async delegate - { - // Almost guaranteed to exist - var uri = Assembly.GetEntryAssembly()?.GetModules().FirstOrDefault()?.FullyQualifiedName; - var initialFileName = uri == null ? null : System.IO.Path.GetFileName(uri); - var initialDirectory = uri == null ? null : System.IO.Path.GetDirectoryName(uri); - - var result = await new OpenFileDialog() - { - Title = "Open file", - Filters = GetFilters(), - Directory = initialDirectory, - InitialFileName = initialFileName - }.ShowAsync(GetWindow()); - results.ItemsSource = result; - resultsVisible.IsVisible = result?.Any() == true; - }; - OpenMultipleFiles.Click += async delegate - { - var result = await new OpenFileDialog() - { - Title = "Open multiple files", - Filters = GetFilters(), - Directory = lastSelectedDirectory?.Path is {IsAbsoluteUri:true} path ? path.LocalPath : null, - AllowMultiple = true - }.ShowAsync(GetWindow()); - results.ItemsSource = result; - resultsVisible.IsVisible = result?.Any() == true; - }; - SaveFile.Click += async delegate - { - var filters = GetFilters(); - var result = await new SaveFileDialog() - { - Title = "Save file", - Filters = filters, - Directory = lastSelectedDirectory?.Path is {IsAbsoluteUri:true} path ? path.LocalPath : null, - DefaultExtension = filters?.Any() == true ? "txt" : null, - InitialFileName = "test.txt" - }.ShowAsync(GetWindow()); - results.ItemsSource = new[] { result }; - resultsVisible.IsVisible = result != null; - }; - SelectFolder.Click += async delegate - { - var result = await new OpenFolderDialog() - { - Title = "Select folder", - Directory = lastSelectedDirectory?.Path is {IsAbsoluteUri:true} path ? path.LocalPath : null, - }.ShowAsync(GetWindow()); - if (string.IsNullOrEmpty(result)) - { - resultsVisible.IsVisible = false; - } - else - { - SetFolder(await GetStorageProvider().TryGetFolderFromPathAsync(result!)); - results.ItemsSource = new[] { result }; - resultsVisible.IsVisible = true; - } - }; - OpenBoth.Click += async delegate - { - var result = await new OpenFileDialog() - { - Title = "Select both", - Directory = lastSelectedDirectory?.Path is {IsAbsoluteUri:true} path ? path.LocalPath : null, - AllowMultiple = true - }.ShowManagedAsync(GetWindow(), new ManagedFileDialogOptions - { - AllowDirectorySelection = true - }); - results.ItemsSource = result; - resultsVisible.IsVisible = result?.Any() == true; - }; DecoratedWindow.Click += delegate { new DecoratedWindow().Show(); diff --git a/samples/ControlCatalog/Pages/NumericUpDownPage.xaml b/samples/ControlCatalog/Pages/NumericUpDownPage.xaml index b01b4a93bc..a112f79c02 100644 --- a/samples/ControlCatalog/Pages/NumericUpDownPage.xaml +++ b/samples/ControlCatalog/Pages/NumericUpDownPage.xaml @@ -1,4 +1,4 @@ - - Watermark: - + PlaceholderText: + Text: @@ -81,23 +81,23 @@ + PlaceholderText="Enter text" FormatString="{Binding SelectedFormat.Value}"/> + PlaceholderText="Enter text" FormatString="{Binding SelectedFormat.Value}"/> - + + PlaceholderText="Enter text" FormatString="{Binding SelectedFormat.Value}"> - + @@ -110,10 +110,18 @@ - + + + + - - + + + + - + - + - + + SelectionStart="5" SelectionEnd="22" + SelectionBrush="Green" SelectionForegroundBrush="Yellow" ClearSelectionOnLostFocus="False"/> @@ -54,11 +61,11 @@ - + + FontFamily="Comic Sans MS" + FontSize="10" + Foreground="Red"/> - diff --git a/samples/ControlCatalog/Pages/ThemePage.axaml b/samples/ControlCatalog/Pages/ThemePage.axaml index 2d948c44a0..7eb95471a0 100644 --- a/samples/ControlCatalog/Pages/ThemePage.axaml +++ b/samples/ControlCatalog/Pages/ThemePage.axaml @@ -1,4 +1,4 @@ - - - + + + This is an assertive live region. diff --git a/samples/IntegrationTestApp/Pages/AutomationPage.axaml.cs b/samples/IntegrationTestApp/Pages/AutomationPage.axaml.cs index f79000126c..7bf37c175f 100644 --- a/samples/IntegrationTestApp/Pages/AutomationPage.axaml.cs +++ b/samples/IntegrationTestApp/Pages/AutomationPage.axaml.cs @@ -1,4 +1,5 @@ using Avalonia.Controls; +using Avalonia.Interactivity; namespace IntegrationTestApp.Pages; @@ -8,4 +9,9 @@ public partial class AutomationPage : UserControl { InitializeComponent(); } + + private void OnButtonAddSomeText(object? sender, RoutedEventArgs? e) + { + textLiveRegion.Text += " Lorem ipsum."; + } } diff --git a/samples/IntegrationTestApp/Pages/DragDropPage.axaml b/samples/IntegrationTestApp/Pages/DragDropPage.axaml new file mode 100644 index 0000000000..64221759be --- /dev/null +++ b/samples/IntegrationTestApp/Pages/DragDropPage.axaml @@ -0,0 +1,62 @@ + + + + + Drop Position: + + Status: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/IntegrationTestApp/Pages/DragDropPage.axaml.cs b/samples/IntegrationTestApp/Pages/DragDropPage.axaml.cs new file mode 100644 index 0000000000..ba5ad0a3b5 --- /dev/null +++ b/samples/IntegrationTestApp/Pages/DragDropPage.axaml.cs @@ -0,0 +1,103 @@ +using System; +using Avalonia; +using Avalonia.Controls; +using Avalonia.Input; +using Avalonia.Input.Platform; +using Avalonia.Interactivity; + +namespace IntegrationTestApp.Pages; + +public partial class DragDropPage : UserControl +{ + public DragDropPage() + { + InitializeComponent(); + + // Set up drag-drop event handlers + AddHandler(DragDrop.DragOverEvent, DropTarget_DragOver); + AddHandler(DragDrop.DropEvent, DropTarget_Drop); + } + + private async void DragSource_PointerPressed(object? sender, PointerPressedEventArgs e) + { + if (e.GetCurrentPoint(this).Properties.IsLeftButtonPressed) + { + var dragData = new DataTransfer(); + dragData.Add(DataTransferItem.CreateText("TestDragData")); + + DragDropStatus.Text = "Dragging..."; + + var result = await DragDrop.DoDragDropAsync(e, dragData, DragDropEffects.Copy | DragDropEffects.Move); + + DragDropStatus.Text = result switch + { + DragDropEffects.Copy => "Copied", + DragDropEffects.Move => "Moved", + DragDropEffects.None => "Cancelled", + _ => $"Result: {result}" + }; + } + } + + private void DropTarget_DragOver(object? sender, DragEventArgs e) + { + // Only handle events for the drop target + if (e.Source != DropTarget && !IsChildOf(e.Source as Visual, DropTarget)) + return; + + e.DragEffects = DragDropEffects.Copy; + + // Get the position relative to the drop target + var position = e.GetPosition(DropTarget); + DropPosition.Text = $"DragOver: ({position.X:F0}, {position.Y:F0})"; + } + + private void DropTarget_Drop(object? sender, DragEventArgs e) + { + // Only handle events for the drop target + if (e.Source != DropTarget && !IsChildOf(e.Source as Visual, DropTarget)) + return; + + // Get the position relative to the drop target + var position = e.GetPosition(DropTarget); + DropPosition.Text = $"Drop: ({position.X:F0}, {position.Y:F0})"; + + // Check if the position is within reasonable bounds of the drop target + var bounds = DropTarget.Bounds; + var isWithinBounds = position.X >= 0 && position.X <= bounds.Width && + position.Y >= 0 && position.Y <= bounds.Height; + + var text = e.DataTransfer.TryGetText(); + if (text != null) + { + DropTargetText.Text = isWithinBounds + ? $"Dropped: {text} at ({position.X:F0}, {position.Y:F0})" + : $"ERROR: Position out of bounds! ({position.X:F0}, {position.Y:F0})"; + DragDropStatus.Text = isWithinBounds ? "Drop OK" : "Drop position ERROR"; + } + + e.DragEffects = DragDropEffects.Copy; + } + + private static bool IsChildOf(Visual? child, Visual? parent) + { + if (child == null || parent == null) + return false; + + var current = child.Parent as Visual; + while (current != null) + { + if (current == parent) + return true; + current = current.Parent as Visual; + } + return false; + } + + private void ResetDragDrop_Click(object? sender, RoutedEventArgs e) + { + DropPosition.Text = string.Empty; + DragDropStatus.Text = string.Empty; + DropTargetText.Text = "Drop items here"; + } +} diff --git a/samples/IntegrationTestApp/Pages/EmbeddingPage.axaml b/samples/IntegrationTestApp/Pages/EmbeddingPage.axaml index 632893bcd0..4d6bc24b47 100644 --- a/samples/IntegrationTestApp/Pages/EmbeddingPage.axaml +++ b/samples/IntegrationTestApp/Pages/EmbeddingPage.axaml @@ -16,5 +16,7 @@ + + diff --git a/samples/IntegrationTestApp/Pages/EmbeddingPage.axaml.cs b/samples/IntegrationTestApp/Pages/EmbeddingPage.axaml.cs index 93855cd13d..465743afbf 100644 --- a/samples/IntegrationTestApp/Pages/EmbeddingPage.axaml.cs +++ b/samples/IntegrationTestApp/Pages/EmbeddingPage.axaml.cs @@ -1,10 +1,19 @@ +using System; +using Avalonia.Automation; using Avalonia.Controls; +using Avalonia.Controls.Embedding; using Avalonia.Interactivity; +using IntegrationTestApp.Embedding; +using MonoMac.AppKit; +using MonoMac.CoreGraphics; +using MonoMac.ObjCRuntime; namespace IntegrationTestApp; public partial class EmbeddingPage : UserControl { + private const long NSModalResponseContinue = -1002; + public EmbeddingPage() { InitializeComponent(); @@ -19,5 +28,65 @@ public partial class EmbeddingPage : UserControl private void Reset_Click(object? sender, RoutedEventArgs e) { ResetText(); + ModalResultTextBox.Text = ""; + } + + private void RunNativeModalSession_OnClick(object? sender, RoutedEventArgs e) + { + MacHelper.EnsureInitialized(); + + var app = NSApplication.SharedApplication; + var modalWindow = CreateNativeWindow(); + var session = app.BeginModalSession(modalWindow); + + while (true) + { + if (app.RunModalSession(session) != NSModalResponseContinue) + break; + } + + app.EndModalSession(session); + } + + private NSWindow CreateNativeWindow() + { + var button = new Button + { + Name = "ButtonInModal", + Content = "Button" + }; + + AutomationProperties.SetAutomationId(button, "ButtonInModal"); + + var root = new EmbeddableControlRoot + { + Width = 200, + Height = 200, + Content = button + }; + root.Prepare(); + + var window = new NSWindow( + new CGRect(0, 0, root.Width, root.Height), + NSWindowStyle.Titled | NSWindowStyle.Closable, + NSBackingStore.Buffered, + false); + + window.Identifier = "ModalNativeWindow"; + window.WillClose += (_, _) => NSApplication.SharedApplication.StopModal(); + + button.Click += (_, _) => + { + ModalResultTextBox.Text = "Clicked"; + window.Close(); + }; + + if (root.TryGetPlatformHandle() is not { } handle) + throw new InvalidOperationException("Could not get platform handle"); + + window.ContentView = (NSView)Runtime.GetNSObject(handle.Handle)!; + root.StartRendering(); + + return window; } } diff --git a/samples/IntegrationTestApp/Pages/ScreensPage.axaml b/samples/IntegrationTestApp/Pages/ScreensPage.axaml index 2d95c4719a..7f0b341714 100644 --- a/samples/IntegrationTestApp/Pages/ScreensPage.axaml +++ b/samples/IntegrationTestApp/Pages/ScreensPage.axaml @@ -8,12 +8,12 @@