diff --git a/.gitignore b/.gitignore index 23b8efffa0..7b9a7c5a25 100644 --- a/.gitignore +++ b/.gitignore @@ -170,6 +170,7 @@ $RECYCLE.BIN/ ## VS Code ################# .vscode/ +*.lscache ################# ## Cake diff --git a/Directory.Packages.props b/Directory.Packages.props index 0b02597482..942a01d13b 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -5,7 +5,7 @@ - + @@ -15,9 +15,10 @@ - - - + + + + @@ -47,9 +48,9 @@ - - - + + + @@ -60,7 +61,7 @@ - + diff --git a/api/Avalonia.Android.nupkg.xml b/api/Avalonia.Android.nupkg.xml deleted file mode 100644 index 98f8c40204..0000000000 --- a/api/Avalonia.Android.nupkg.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - 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 - - - CP0002 - M:Avalonia.Android.AvaloniaMainActivity.CreateAppBuilder - baseline/Avalonia.Android/lib/net10.0-android36.0/Avalonia.Android.dll - current/Avalonia.Android/lib/net10.0-android36.0/Avalonia.Android.dll - - - CP0002 - M:Avalonia.Android.AvaloniaMainActivity.CustomizeAppBuilder(Avalonia.AppBuilder) - 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 deleted file mode 100644 index c87cf909fe..0000000000 --- a/api/Avalonia.Headless.XUnit.nupkg.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - 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 deleted file mode 100644 index 229047057a..0000000000 --- a/api/Avalonia.Headless.nupkg.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - 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.LinuxFramebuffer.nupkg.xml b/api/Avalonia.LinuxFramebuffer.nupkg.xml deleted file mode 100644 index 0fa6ef4e03..0000000000 --- a/api/Avalonia.LinuxFramebuffer.nupkg.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - CP0002 - M:Avalonia.LinuxFramebuffer.FbdevOutput.CreateFramebufferRenderTarget - baseline/Avalonia.LinuxFramebuffer/lib/net10.0/Avalonia.LinuxFramebuffer.dll - current/Avalonia.LinuxFramebuffer/lib/net10.0/Avalonia.LinuxFramebuffer.dll - - - CP0002 - M:Avalonia.LinuxFramebuffer.FbdevOutput.Lock - baseline/Avalonia.LinuxFramebuffer/lib/net10.0/Avalonia.LinuxFramebuffer.dll - current/Avalonia.LinuxFramebuffer/lib/net10.0/Avalonia.LinuxFramebuffer.dll - - - CP0002 - M:Avalonia.LinuxFramebuffer.FbdevOutput.CreateFramebufferRenderTarget - baseline/Avalonia.LinuxFramebuffer/lib/net8.0/Avalonia.LinuxFramebuffer.dll - current/Avalonia.LinuxFramebuffer/lib/net8.0/Avalonia.LinuxFramebuffer.dll - - - CP0002 - M:Avalonia.LinuxFramebuffer.FbdevOutput.Lock - baseline/Avalonia.LinuxFramebuffer/lib/net8.0/Avalonia.LinuxFramebuffer.dll - current/Avalonia.LinuxFramebuffer/lib/net8.0/Avalonia.LinuxFramebuffer.dll - - - CP0008 - T:Avalonia.LinuxFramebuffer.FbdevOutput - baseline/Avalonia.LinuxFramebuffer/lib/net10.0/Avalonia.LinuxFramebuffer.dll - current/Avalonia.LinuxFramebuffer/lib/net10.0/Avalonia.LinuxFramebuffer.dll - - - CP0008 - T:Avalonia.LinuxFramebuffer.FbdevOutput - baseline/Avalonia.LinuxFramebuffer/lib/net8.0/Avalonia.LinuxFramebuffer.dll - current/Avalonia.LinuxFramebuffer/lib/net8.0/Avalonia.LinuxFramebuffer.dll - - diff --git a/api/Avalonia.Skia.nupkg.xml b/api/Avalonia.Skia.nupkg.xml deleted file mode 100644 index 7a83006bf2..0000000000 --- a/api/Avalonia.Skia.nupkg.xml +++ /dev/null @@ -1,196 +0,0 @@ - - - - - CP0001 - T:Avalonia.Skia.ISkiaGpu - baseline/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - - - CP0001 - T:Avalonia.Skia.ISkiaGpuRenderTarget2 - baseline/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - - - CP0001 - T:Avalonia.Skia.ISkiaGpuWithPlatformGraphicsContext - baseline/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - - - CP0001 - T:Avalonia.Skia.ISkiaGpu - baseline/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - - - CP0001 - T:Avalonia.Skia.ISkiaGpuRenderTarget2 - baseline/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - - - CP0001 - T:Avalonia.Skia.ISkiaGpuWithPlatformGraphicsContext - baseline/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - - - CP0002 - M:Avalonia.Skia.Helpers.DrawingContextHelper.WrapSkiaCanvas(SkiaSharp.SKCanvas,Avalonia.Vector) - baseline/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - - - CP0002 - M:Avalonia.Skia.ISkiaGpu.TryCreateRenderTarget(System.Collections.Generic.IEnumerable{System.Object}) - baseline/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - - - CP0002 - M:Avalonia.Skia.ISkiaGpuRenderTarget.BeginRenderingSession - baseline/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - - - CP0002 - M:Avalonia.Skia.ISkiaGpuRenderTarget.BeginRenderingSession(System.Nullable{Avalonia.PixelSize}) - baseline/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - - - CP0002 - M:Avalonia.Skia.ISkiaGpuRenderTarget.get_IsCorrupted - baseline/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - - - CP0002 - M:Avalonia.Skia.ISkiaGpuRenderTarget.get_IsReady - baseline/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - - - CP0002 - M:Avalonia.Skia.Helpers.DrawingContextHelper.WrapSkiaCanvas(SkiaSharp.SKCanvas,Avalonia.Vector) - baseline/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - - - CP0002 - M:Avalonia.Skia.ISkiaGpu.TryCreateRenderTarget(System.Collections.Generic.IEnumerable{System.Object}) - baseline/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - - - CP0002 - M:Avalonia.Skia.ISkiaGpuRenderTarget.BeginRenderingSession - baseline/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - - - CP0002 - M:Avalonia.Skia.ISkiaGpuRenderTarget.BeginRenderingSession(System.Nullable{Avalonia.PixelSize}) - baseline/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - - - CP0002 - M:Avalonia.Skia.ISkiaGpuRenderTarget.get_IsCorrupted - baseline/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - - - CP0002 - M:Avalonia.Skia.ISkiaGpuRenderTarget.get_IsReady - baseline/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - - - CP0006 - M:Avalonia.Skia.ISkiaGpu.TryCreateRenderTarget(System.Collections.Generic.IEnumerable{Avalonia.Platform.Surfaces.IPlatformRenderSurface}) - baseline/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - - - CP0006 - M:Avalonia.Skia.ISkiaGpu.TryGetGrContext - baseline/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - - - CP0006 - M:Avalonia.Skia.ISkiaGpuRenderTarget.BeginRenderingSession(Avalonia.Platform.IRenderTarget.RenderTargetSceneInfo) - baseline/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - - - CP0006 - M:Avalonia.Skia.ISkiaGpuRenderTarget.BeginRenderingSession(System.Nullable{Avalonia.PixelSize}) - baseline/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - - - CP0006 - P:Avalonia.Skia.ISkiaGpu.PlatformGraphicsContext - baseline/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net10.0/Avalonia.Skia.dll - - - CP0006 - M:Avalonia.Skia.ISkiaGpu.TryCreateRenderTarget(System.Collections.Generic.IEnumerable{Avalonia.Platform.Surfaces.IPlatformRenderSurface}) - baseline/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - - - CP0006 - M:Avalonia.Skia.ISkiaGpu.TryGetGrContext - baseline/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - - - CP0006 - M:Avalonia.Skia.ISkiaGpuRenderTarget.BeginRenderingSession(Avalonia.Platform.IRenderTarget.RenderTargetSceneInfo) - baseline/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - - - CP0006 - M:Avalonia.Skia.ISkiaGpuRenderTarget.BeginRenderingSession(System.Nullable{Avalonia.PixelSize}) - baseline/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - - - CP0006 - P:Avalonia.Skia.ISkiaGpu.PlatformGraphicsContext - baseline/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - current/Avalonia.Skia/lib/net8.0/Avalonia.Skia.dll - - - 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 - - \ No newline at end of file diff --git a/api/Avalonia.Win32.Interoperability.nupkg.xml b/api/Avalonia.Win32.Interoperability.nupkg.xml deleted file mode 100644 index 3672bb9b99..0000000000 --- a/api/Avalonia.Win32.Interoperability.nupkg.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - CP0002 - M:Avalonia.Win32.Interoperability.WinFormsAvaloniaControlHost.PreFilterMessage(System.Windows.Forms.Message@) - baseline/Avalonia.Win32.Interoperability/lib/net461/Avalonia.Win32.Interoperability.dll - current/Avalonia.Win32.Interoperability/lib/net461/Avalonia.Win32.Interoperability.dll - - - CP0002 - M:Avalonia.Win32.Interoperability.WinFormsAvaloniaControlHost.PreFilterMessage(System.Windows.Forms.Message@) - baseline/Avalonia.Win32.Interoperability/lib/net6.0-windows7.0/Avalonia.Win32.Interoperability.dll - current/Avalonia.Win32.Interoperability/lib/net6.0-windows7.0/Avalonia.Win32.Interoperability.dll - - - CP0002 - M:Avalonia.Win32.Interoperability.WinFormsAvaloniaControlHost.PreFilterMessage(System.Windows.Forms.Message@) - baseline/Avalonia.Win32.Interoperability/lib/net8.0-windows7.0/Avalonia.Win32.Interoperability.dll - current/Avalonia.Win32.Interoperability/lib/net8.0-windows7.0/Avalonia.Win32.Interoperability.dll - - - CP0008 - T:Avalonia.Win32.Interoperability.WinFormsAvaloniaControlHost - baseline/Avalonia.Win32.Interoperability/lib/net461/Avalonia.Win32.Interoperability.dll - current/Avalonia.Win32.Interoperability/lib/net461/Avalonia.Win32.Interoperability.dll - - - CP0008 - T:Avalonia.Win32.Interoperability.WinFormsAvaloniaControlHost - baseline/Avalonia.Win32.Interoperability/lib/net6.0-windows7.0/Avalonia.Win32.Interoperability.dll - current/Avalonia.Win32.Interoperability/lib/net6.0-windows7.0/Avalonia.Win32.Interoperability.dll - - - CP0008 - T:Avalonia.Win32.Interoperability.WinFormsAvaloniaControlHost - baseline/Avalonia.Win32.Interoperability/lib/net8.0-windows7.0/Avalonia.Win32.Interoperability.dll - current/Avalonia.Win32.Interoperability/lib/net8.0-windows7.0/Avalonia.Win32.Interoperability.dll - - diff --git a/api/Avalonia.Win32.nupkg.xml b/api/Avalonia.Win32.nupkg.xml deleted file mode 100644 index 903595add8..0000000000 --- a/api/Avalonia.Win32.nupkg.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - CP0002 - M:Avalonia.Win32.DirectX.IDirect3D11TextureRenderTarget.get_IsCorrupted - baseline/Avalonia.Win32/lib/net10.0/Avalonia.Win32.dll - current/Avalonia.Win32/lib/net10.0/Avalonia.Win32.dll - - - CP0002 - M:Avalonia.Win32.DirectX.IDirect3D11TextureRenderTarget.get_IsCorrupted - baseline/Avalonia.Win32/lib/net8.0/Avalonia.Win32.dll - current/Avalonia.Win32/lib/net8.0/Avalonia.Win32.dll - - \ No newline at end of file diff --git a/api/Avalonia.nupkg.xml b/api/Avalonia.nupkg.xml deleted file mode 100644 index cbaf782d24..0000000000 --- a/api/Avalonia.nupkg.xml +++ /dev/null @@ -1,5896 +0,0 @@ - - - - - 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.Data.Core.Plugins.BindingPlugins - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Data.Core.Plugins.DataValidationBase - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Data.Core.Plugins.ExceptionValidationPlugin - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Data.Core.Plugins.IDataValidationPlugin - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Data.Core.Plugins.IndeiValidationPlugin - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Data.Core.Plugins.IPropertyAccessorPlugin - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Data.Core.Plugins.IStreamPlugin - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Data.Core.Plugins.PropertyAccessorBase - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Data.Core.Plugins.PropertyError - 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.Gestures - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Input.GotFocusEventArgs - 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.Input.IKeyboardNavigationHandler - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Input.KeyboardNavigationHandler - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Input.TextInput.ITextInputMethodRoot - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Layout.IEmbeddedLayoutRoot - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Layout.ILayoutRoot - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Layout.LayoutManager - 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.Media.TextFormatting.TextRange - 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.IRenderTarget2 - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Platform.IRenderTargetWithProperties - 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.Rendering.IHitTester - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Rendering.IRenderer - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Rendering.IRenderRoot - 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.MathUtilities - 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.VisualTree.IHostedVisualTreeRoot - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Controls.AppBarButton - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.AppBarSeparator - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.AppBarToggleButton - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.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.Chrome.CaptionButtons - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.Chrome.TitleBar - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.ContextRequestedEventArgs - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.Diagnostics.IPopupHostProvider - 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.Platform.ManagedDispatcherImpl - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.Platform.Surfaces.FramebufferLockProperties - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.Platform.Surfaces.FuncFramebufferRenderTarget - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.Platform.Surfaces.IFramebufferPlatformSurface - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.Platform.Surfaces.IFramebufferRenderTarget - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.Platform.Surfaces.IFramebufferRenderTargetWithProperties - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.Primitives.ChromeOverlayLayer - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.Primitives.IPopupHost - 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.Primitives.LightDismissOverlayLayer - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.Primitives.OverlayLayer - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.Primitives.SelectionHandleType - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.Remote.RemoteServer - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.Remote.RemoteWidget - 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.SystemDecorations - 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.ExtendClientAreaChromeHints - 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.OpenGL.Surfaces.IGlPlatformSurfaceRenderTarget2 - baseline/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - - - CP0001 - T:Avalonia.OpenGL.Surfaces.IGlPlatformSurfaceRenderTargetWithCorruptionInfo - baseline/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - - - CP0001 - T:Avalonia.Media.Fonts.FontFamilyLoader - baseline/Avalonia/lib/net6.0/Avalonia.Base.dll - current/Avalonia/lib/net6.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.Data.Core.Plugins.BindingPlugins - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Data.Core.Plugins.DataValidationBase - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Data.Core.Plugins.ExceptionValidationPlugin - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Data.Core.Plugins.IDataValidationPlugin - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Data.Core.Plugins.IndeiValidationPlugin - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Data.Core.Plugins.IPropertyAccessorPlugin - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Data.Core.Plugins.IStreamPlugin - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Data.Core.Plugins.PropertyAccessorBase - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Data.Core.Plugins.PropertyError - 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.Gestures - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Input.GotFocusEventArgs - 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.Input.IKeyboardNavigationHandler - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Input.KeyboardNavigationHandler - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Input.TextInput.ITextInputMethodRoot - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Layout.IEmbeddedLayoutRoot - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Layout.ILayoutRoot - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Layout.LayoutManager - 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.Media.TextFormatting.TextRange - 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.IRenderTarget2 - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Platform.IRenderTargetWithProperties - 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.Rendering.IHitTester - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Rendering.IRenderer - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Rendering.IRenderRoot - 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.MathUtilities - 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.VisualTree.IHostedVisualTreeRoot - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0001 - T:Avalonia.Controls.AppBarButton - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.AppBarSeparator - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.AppBarToggleButton - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.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.Chrome.CaptionButtons - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.Chrome.TitleBar - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.ContextRequestedEventArgs - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.Diagnostics.IPopupHostProvider - 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.Platform.ManagedDispatcherImpl - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.Platform.Surfaces.FramebufferLockProperties - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.Platform.Surfaces.FuncFramebufferRenderTarget - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.Platform.Surfaces.IFramebufferPlatformSurface - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.Platform.Surfaces.IFramebufferRenderTarget - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.Platform.Surfaces.IFramebufferRenderTargetWithProperties - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.Primitives.ChromeOverlayLayer - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.Primitives.IPopupHost - 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.Primitives.LightDismissOverlayLayer - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.Primitives.OverlayLayer - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.Primitives.SelectionHandleType - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.Remote.RemoteServer - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0001 - T:Avalonia.Controls.Remote.RemoteWidget - 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.SystemDecorations - 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.ExtendClientAreaChromeHints - 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.OpenGL.Surfaces.IGlPlatformSurfaceRenderTarget2 - baseline/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - - - CP0001 - T:Avalonia.OpenGL.Surfaces.IGlPlatformSurfaceRenderTargetWithCorruptionInfo - baseline/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net8.0/Avalonia.OpenGL.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.Input.GestureRecognizers.SwipeGestureRecognizer.CrossAxisCancelThresholdProperty - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - F:Avalonia.Input.GestureRecognizers.SwipeGestureRecognizer.EdgeSizeProperty - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - F:Avalonia.Input.HoldingState.Cancelled - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - F:Avalonia.Input.InputElement.GotFocusEvent - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - F:Avalonia.Input.InputElement.LostFocusEvent - 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.CompiledBindingPathBuilder.StreamObservable - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Data.CompiledBindingPathBuilder.StreamTask - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Data.CompiledBindingPathBuilder.TypeCast(System.Type) - 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.DragDrop.DoDragDropAsync(Avalonia.Input.PointerEventArgs,Avalonia.Input.IDataTransfer,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.FocusManager.#ctor(Avalonia.Input.IInputElement) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.FocusManager.ClearFocus - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.FocusManager.ClearFocusOnElementRemoved(Avalonia.Input.IInputElement,Avalonia.Visual) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.FocusManager.FindNextElement(Avalonia.Input.NavigationDirection) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.FocusManager.TryMoveFocus(Avalonia.Input.NavigationDirection) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.GestureRecognizers.SwipeGestureRecognizer.get_CrossAxisCancelThreshold - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.GestureRecognizers.SwipeGestureRecognizer.get_EdgeSize - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.GestureRecognizers.SwipeGestureRecognizer.set_CrossAxisCancelThreshold(System.Double) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.GestureRecognizers.SwipeGestureRecognizer.set_EdgeSize(System.Double) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.HoldingRoutedEventArgs.#ctor(Avalonia.Input.HoldingState,Avalonia.Point,Avalonia.Input.PointerType) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.IFocusManager.ClearFocus - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.IInputRoot.get_KeyboardNavigationHandler - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.IInputRoot.get_PlatformSettings - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.IInputRoot.get_PointerOverElement - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.IInputRoot.get_ShowAccessKeys - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.IInputRoot.set_PointerOverElement(Avalonia.Input.IInputElement) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.IInputRoot.set_ShowAccessKeys(System.Boolean) - 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.InputElement.AddPinchEndedHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PinchEndedEventArgs}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.AddPinchHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PinchEventArgs}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.AddPointerTouchPadGestureMagnifyHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PointerDeltaEventArgs}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.AddPointerTouchPadGestureRotateHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PointerDeltaEventArgs}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.AddPointerTouchPadGestureSwipeHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PointerDeltaEventArgs}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.AddPullGestureEndedHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PullGestureEndedEventArgs}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.AddPullGestureHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PullGestureEventArgs}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.AddScrollGestureEndedHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.ScrollGestureEndedEventArgs}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.AddScrollGestureHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.ScrollGestureEventArgs}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.AddScrollGestureInertiaStartingHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.ScrollGestureInertiaStartingEventArgs}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.OnGotFocus(Avalonia.Input.GotFocusEventArgs) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.OnLostFocus(Avalonia.Interactivity.RoutedEventArgs) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.RemovePinchEndedHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PinchEndedEventArgs}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.RemovePinchHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PinchEventArgs}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.RemovePointerTouchPadGestureMagnifyHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PointerDeltaEventArgs}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.RemovePointerTouchPadGestureRotateHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PointerDeltaEventArgs}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.RemovePointerTouchPadGestureSwipeHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PointerDeltaEventArgs}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.RemovePullGestureEndedHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PullGestureEndedEventArgs}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.RemovePullGestureHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PullGestureEventArgs}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.RemoveScrollGestureEndedHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.ScrollGestureEndedEventArgs}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.RemoveScrollGestureHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.ScrollGestureEventArgs}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.RemoveScrollGestureInertiaStartingHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.ScrollGestureInertiaStartingEventArgs}) - 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.Platform.IPlatformDragSource.DoDragDropAsync(Avalonia.Input.PointerEventArgs,Avalonia.Input.IDataTransfer,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.SwipeGestureEventArgs.#ctor(System.Int32,Avalonia.Input.SwipeDirection,Avalonia.Vector,Avalonia.Point) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.SwipeGestureEventArgs.get_StartPoint - 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.Layout.LayoutHelper.RoundLayoutSizeUp(Avalonia.Size,System.Double,System.Double) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Layout.LayoutHelper.RoundLayoutThickness(Avalonia.Thickness,System.Double,System.Double) - 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.FontCollectionBase.TryGetGlyphTypeface(System.String,Avalonia.Media.Fonts.FontCollectionKey,Avalonia.Media.GlyphTypeface@) - 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.ICursorFactory.CreateCursor(Avalonia.Platform.IBitmapImpl,Avalonia.PixelPoint) - 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.IPlatformRenderInterfaceContext.CreateRenderTarget(System.Collections.Generic.IEnumerable{System.Object}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Platform.IRenderTarget.CreateDrawingContext(Avalonia.PixelSize,Avalonia.Platform.RenderTargetDrawingContextProperties@) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Platform.IRenderTarget.CreateDrawingContext(System.Boolean) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Platform.IRenderTarget.get_IsCorrupted - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Platform.IRenderTarget.get_IsReady - 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.Platform.Surfaces.IPlatformRenderSurfaceRenderTarget.get_IsReady - 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.Rendering.DefaultRenderTimer.add_Tick(System.Action{System.TimeSpan}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Rendering.DefaultRenderTimer.remove_Tick(System.Action{System.TimeSpan}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Rendering.DefaultRenderTimer.Start - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Rendering.DefaultRenderTimer.Stop - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Rendering.IRenderTimer.add_Tick(System.Action{System.TimeSpan}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Rendering.IRenderTimer.remove_Tick(System.Action{System.TimeSpan}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Rendering.SceneInvalidatedEventArgs.#ctor(Avalonia.Rendering.IRenderRoot,Avalonia.Rect) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Rendering.SceneInvalidatedEventArgs.get_RenderRoot - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Rendering.SleepLoopRenderTimer.add_Tick(System.Action{System.TimeSpan}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Rendering.SleepLoopRenderTimer.remove_Tick(System.Action{System.TimeSpan}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Rendering.ThreadProxyRenderTimer.add_Tick(System.Action{System.TimeSpan}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Rendering.ThreadProxyRenderTimer.remove_Tick(System.Action{System.TimeSpan}) - 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.Visual.get_VisualRoot - 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 - M:Avalonia.VisualTree.VisualExtensions.GetVisualRoot(Avalonia.Visual) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.VisualTreeAttachmentEventArgs.#ctor(Avalonia.Visual,Avalonia.Rendering.IRenderRoot) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.VisualTreeAttachmentEventArgs.get_Root - 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.Control.ContextRequestedEvent - 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.DrawerPage.DrawerBreakpointWidthProperty - 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.NavigationPage.IsBackButtonEffectivelyVisibleProperty - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - F:Avalonia.Controls.PipsPager.NextButtonStyleProperty - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - F:Avalonia.Controls.PipsPager.PreviousButtonStyleProperty - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - F:Avalonia.Controls.Primitives.FlyoutBase.IsOpenProperty - 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.Primitives.VisualLayerManager.ChromeOverlayLayerProperty - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - F:Avalonia.Controls.TabItem.IconProperty - 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 - F:Avalonia.Controls.TopLevel.PointerOverElementProperty - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - F:Avalonia.Controls.Window.ExtendClientAreaChromeHintsProperty - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - F:Avalonia.Controls.Window.SystemDecorationsProperty - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - F:Avalonia.Controls.Window.WindowStateProperty - 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.Automation.Peers.AutomationPeer.GetVisualRootCore - 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.DrawerPage.get_DrawerBreakpointWidth - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.DrawerPage.set_DrawerBreakpointWidth(System.Double) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Embedding.Offscreen.OffscreenTopLevelImplBase.get_Surfaces - 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.NavigationPage.get_IsBackButtonEffectivelyVisible - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.PageSelectionChangedEventArgs.#ctor(Avalonia.Controls.Page,Avalonia.Controls.Page) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.PipsPager.get_NextButtonStyle - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.PipsPager.get_PreviousButtonStyle - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.PipsPager.set_NextButtonStyle(Avalonia.Styling.ControlTheme) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.PipsPager.set_PreviousButtonStyle(Avalonia.Styling.ControlTheme) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Platform.DefaultMenuInteractionHandler.GotFocus(System.Object,Avalonia.Input.GotFocusEventArgs) - 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.AccessText.get_AccessKey - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Primitives.AdornerLayer.#ctor - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Primitives.OverlayPopupHost.#ctor(Avalonia.Controls.Primitives.OverlayLayer) - 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,System.Boolean) - 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.OverlayPopupHost.SetChild(Avalonia.Controls.Control) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Primitives.OverlayPopupHost.TakeFocus - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Primitives.Popup.get_Host - 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.GetText(Avalonia.Interactivity.Interactive) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Primitives.TextSearch.GetTextBinding(Avalonia.Interactivity.Interactive) - 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.TextSearch.SetText(Avalonia.Interactivity.Interactive,System.String) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Primitives.TextSearch.SetTextBinding(Avalonia.Interactivity.Interactive,Avalonia.Data.BindingBase) - 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.Primitives.VisualLayerManager.get_AdornerLayer - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Primitives.VisualLayerManager.get_ChromeOverlayLayer - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Primitives.VisualLayerManager.get_IsPopup - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Primitives.VisualLayerManager.get_LightDismissOverlayLayer - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Primitives.VisualLayerManager.get_OverlayLayer - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Primitives.VisualLayerManager.get_TextSelectorLayer - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Primitives.VisualLayerManager.set_IsPopup(System.Boolean) - 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.TabbedPage.FindNextEnabledTab(System.Int32,System.Int32) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.TabItem.get_Icon - 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.TopLevel.#ctor(Avalonia.Platform.ITopLevelImpl,Avalonia.IAvaloniaDependencyResolver) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.TopLevel.get_PlatformSettings - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.TopLevel.StartRendering - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.TopLevel.StopRendering - 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.Controls.Window.ExtendClientAreaToDecorationsChanged(System.Boolean) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Window.get_ExtendClientAreaChromeHints - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Window.get_SystemDecorations - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Window.set_ExtendClientAreaChromeHints(Avalonia.Platform.ExtendClientAreaChromeHints) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Window.SortWindowsByZOrder(Avalonia.Controls.Window[]) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.WindowBase.ArrangeSetBounds(Avalonia.Size) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Platform.ITopLevelImpl.get_Surfaces - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Platform.IWindowImpl.GetWindowsZOrder(System.Span{Avalonia.Controls.Window},System.Span{System.Int64}) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Platform.IWindowImpl.SetExtendClientAreaChromeHints(Avalonia.Platform.ExtendClientAreaChromeHints) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Platform.IWindowImpl.SetSystemDecorations(Avalonia.Controls.SystemDecorations) - 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 - M:Avalonia.OpenGL.Egl.EglPlatformSurfaceRenderTargetBase.BeginDraw - baseline/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - - - CP0002 - M:Avalonia.OpenGL.Egl.EglPlatformSurfaceRenderTargetBase.BeginDraw(System.Nullable{Avalonia.PixelSize}) - baseline/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - - - CP0002 - M:Avalonia.OpenGL.Egl.EglPlatformSurfaceRenderTargetBase.BeginDrawCore - baseline/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - - - CP0002 - M:Avalonia.OpenGL.Egl.EglPlatformSurfaceRenderTargetBase.BeginDrawCore(System.Nullable{Avalonia.PixelSize}) - baseline/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - - - CP0002 - M:Avalonia.OpenGL.IGlPlatformSurfaceRenderTargetFactory.CanRenderToSurface(Avalonia.OpenGL.IGlContext,System.Object) - baseline/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - - - CP0002 - M:Avalonia.OpenGL.IGlPlatformSurfaceRenderTargetFactory.CreateRenderTarget(Avalonia.OpenGL.IGlContext,System.Object) - baseline/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - - - CP0002 - M:Avalonia.OpenGL.Surfaces.IGlPlatformSurfaceRenderTarget.BeginDraw - baseline/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - - - CP0002 - M:Avalonia.OpenGL.Surfaces.IGlPlatformSurfaceRenderTarget.BeginDraw(System.Nullable{Avalonia.PixelSize}) - baseline/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - - - CP0002 - M:Avalonia.OpenGL.Surfaces.IGlPlatformSurfaceRenderTarget.get_IsCorrupted - baseline/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - - - CP0002 - M:Avalonia.Vulkan.IVulkanKhrSurfacePlatformSurfaceFactory.CanRenderToSurface(Avalonia.Vulkan.IVulkanPlatformGraphicsContext,System.Object) - baseline/Avalonia/lib/net10.0/Avalonia.Vulkan.dll - current/Avalonia/lib/net10.0/Avalonia.Vulkan.dll - - - CP0002 - M:Avalonia.Vulkan.IVulkanKhrSurfacePlatformSurfaceFactory.CreateSurface(Avalonia.Vulkan.IVulkanPlatformGraphicsContext,System.Object) - baseline/Avalonia/lib/net10.0/Avalonia.Vulkan.dll - current/Avalonia/lib/net10.0/Avalonia.Vulkan.dll - - - CP0002 - M:Avalonia.Vulkan.IVulkanPlatformGraphicsContext.CreateRenderTarget(System.Collections.Generic.IEnumerable{System.Object}) - baseline/Avalonia/lib/net10.0/Avalonia.Vulkan.dll - current/Avalonia/lib/net10.0/Avalonia.Vulkan.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.Input.GestureRecognizers.SwipeGestureRecognizer.CrossAxisCancelThresholdProperty - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - F:Avalonia.Input.GestureRecognizers.SwipeGestureRecognizer.EdgeSizeProperty - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - F:Avalonia.Input.HoldingState.Cancelled - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - F:Avalonia.Input.InputElement.GotFocusEvent - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - F:Avalonia.Input.InputElement.LostFocusEvent - 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.CompiledBindingPathBuilder.StreamObservable - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Data.CompiledBindingPathBuilder.StreamTask - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Data.CompiledBindingPathBuilder.TypeCast(System.Type) - 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.DragDrop.DoDragDropAsync(Avalonia.Input.PointerEventArgs,Avalonia.Input.IDataTransfer,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.FocusManager.#ctor(Avalonia.Input.IInputElement) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.FocusManager.ClearFocus - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.FocusManager.ClearFocusOnElementRemoved(Avalonia.Input.IInputElement,Avalonia.Visual) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.FocusManager.FindNextElement(Avalonia.Input.NavigationDirection) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.FocusManager.TryMoveFocus(Avalonia.Input.NavigationDirection) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.GestureRecognizers.SwipeGestureRecognizer.get_CrossAxisCancelThreshold - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.GestureRecognizers.SwipeGestureRecognizer.get_EdgeSize - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.GestureRecognizers.SwipeGestureRecognizer.set_CrossAxisCancelThreshold(System.Double) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.GestureRecognizers.SwipeGestureRecognizer.set_EdgeSize(System.Double) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.HoldingRoutedEventArgs.#ctor(Avalonia.Input.HoldingState,Avalonia.Point,Avalonia.Input.PointerType) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.IFocusManager.ClearFocus - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.IInputRoot.get_KeyboardNavigationHandler - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.IInputRoot.get_PlatformSettings - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.IInputRoot.get_PointerOverElement - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.IInputRoot.get_ShowAccessKeys - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.IInputRoot.set_PointerOverElement(Avalonia.Input.IInputElement) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.IInputRoot.set_ShowAccessKeys(System.Boolean) - 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.InputElement.AddPinchEndedHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PinchEndedEventArgs}) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.AddPinchHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PinchEventArgs}) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.AddPointerTouchPadGestureMagnifyHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PointerDeltaEventArgs}) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.AddPointerTouchPadGestureRotateHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PointerDeltaEventArgs}) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.AddPointerTouchPadGestureSwipeHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PointerDeltaEventArgs}) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.AddPullGestureEndedHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PullGestureEndedEventArgs}) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.AddPullGestureHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PullGestureEventArgs}) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.AddScrollGestureEndedHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.ScrollGestureEndedEventArgs}) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.AddScrollGestureHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.ScrollGestureEventArgs}) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.AddScrollGestureInertiaStartingHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.ScrollGestureInertiaStartingEventArgs}) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.OnGotFocus(Avalonia.Input.GotFocusEventArgs) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.OnLostFocus(Avalonia.Interactivity.RoutedEventArgs) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.RemovePinchEndedHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PinchEndedEventArgs}) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.RemovePinchHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PinchEventArgs}) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.RemovePointerTouchPadGestureMagnifyHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PointerDeltaEventArgs}) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.RemovePointerTouchPadGestureRotateHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PointerDeltaEventArgs}) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.RemovePointerTouchPadGestureSwipeHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PointerDeltaEventArgs}) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.RemovePullGestureEndedHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PullGestureEndedEventArgs}) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.RemovePullGestureHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.PullGestureEventArgs}) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.RemoveScrollGestureEndedHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.ScrollGestureEndedEventArgs}) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.RemoveScrollGestureHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.ScrollGestureEventArgs}) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.InputElement.RemoveScrollGestureInertiaStartingHandler(Avalonia.Interactivity.Interactive,System.EventHandler{Avalonia.Input.ScrollGestureInertiaStartingEventArgs}) - 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.Platform.IPlatformDragSource.DoDragDropAsync(Avalonia.Input.PointerEventArgs,Avalonia.Input.IDataTransfer,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.SwipeGestureEventArgs.#ctor(System.Int32,Avalonia.Input.SwipeDirection,Avalonia.Vector,Avalonia.Point) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Input.SwipeGestureEventArgs.get_StartPoint - 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.Layout.LayoutHelper.RoundLayoutSizeUp(Avalonia.Size,System.Double,System.Double) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Layout.LayoutHelper.RoundLayoutThickness(Avalonia.Thickness,System.Double,System.Double) - 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.FontCollectionBase.TryGetGlyphTypeface(System.String,Avalonia.Media.Fonts.FontCollectionKey,Avalonia.Media.GlyphTypeface@) - 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.ICursorFactory.CreateCursor(Avalonia.Platform.IBitmapImpl,Avalonia.PixelPoint) - 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.IPlatformRenderInterfaceContext.CreateRenderTarget(System.Collections.Generic.IEnumerable{System.Object}) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Platform.IRenderTarget.CreateDrawingContext(Avalonia.PixelSize,Avalonia.Platform.RenderTargetDrawingContextProperties@) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Platform.IRenderTarget.CreateDrawingContext(System.Boolean) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Platform.IRenderTarget.get_IsCorrupted - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Platform.IRenderTarget.get_IsReady - 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.Platform.Surfaces.IPlatformRenderSurfaceRenderTarget.get_IsReady - 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.Rendering.DefaultRenderTimer.add_Tick(System.Action{System.TimeSpan}) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Rendering.DefaultRenderTimer.remove_Tick(System.Action{System.TimeSpan}) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Rendering.DefaultRenderTimer.Start - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Rendering.DefaultRenderTimer.Stop - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Rendering.IRenderTimer.add_Tick(System.Action{System.TimeSpan}) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Rendering.IRenderTimer.remove_Tick(System.Action{System.TimeSpan}) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Rendering.SceneInvalidatedEventArgs.#ctor(Avalonia.Rendering.IRenderRoot,Avalonia.Rect) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Rendering.SceneInvalidatedEventArgs.get_RenderRoot - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Rendering.SleepLoopRenderTimer.add_Tick(System.Action{System.TimeSpan}) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Rendering.SleepLoopRenderTimer.remove_Tick(System.Action{System.TimeSpan}) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Rendering.ThreadProxyRenderTimer.add_Tick(System.Action{System.TimeSpan}) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Rendering.ThreadProxyRenderTimer.remove_Tick(System.Action{System.TimeSpan}) - 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.Visual.get_VisualRoot - 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 - M:Avalonia.VisualTree.VisualExtensions.GetVisualRoot(Avalonia.Visual) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.VisualTreeAttachmentEventArgs.#ctor(Avalonia.Visual,Avalonia.Rendering.IRenderRoot) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.VisualTreeAttachmentEventArgs.get_Root - 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.Control.ContextRequestedEvent - 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.DrawerPage.DrawerBreakpointWidthProperty - 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.NavigationPage.IsBackButtonEffectivelyVisibleProperty - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - F:Avalonia.Controls.PipsPager.NextButtonStyleProperty - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - F:Avalonia.Controls.PipsPager.PreviousButtonStyleProperty - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - F:Avalonia.Controls.Primitives.FlyoutBase.IsOpenProperty - 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.Primitives.VisualLayerManager.ChromeOverlayLayerProperty - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - F:Avalonia.Controls.TabItem.IconProperty - 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 - F:Avalonia.Controls.TopLevel.PointerOverElementProperty - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - F:Avalonia.Controls.Window.ExtendClientAreaChromeHintsProperty - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - F:Avalonia.Controls.Window.SystemDecorationsProperty - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - F:Avalonia.Controls.Window.WindowStateProperty - 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.Automation.Peers.AutomationPeer.GetVisualRootCore - 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 - - - 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 - 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.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.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.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.Controls.DrawerPage.get_DrawerBreakpointWidth - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.DrawerPage.set_DrawerBreakpointWidth(System.Double) - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Embedding.Offscreen.OffscreenTopLevelImplBase.get_Surfaces - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - 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 - 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 - 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.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.NativeMenuItem.get_ToggleType - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.NavigationPage.get_IsBackButtonEffectivelyVisible - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.PageSelectionChangedEventArgs.#ctor(Avalonia.Controls.Page,Avalonia.Controls.Page) - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.PipsPager.get_NextButtonStyle - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.PipsPager.get_PreviousButtonStyle - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.PipsPager.set_NextButtonStyle(Avalonia.Styling.ControlTheme) - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.PipsPager.set_PreviousButtonStyle(Avalonia.Styling.ControlTheme) - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Platform.DefaultMenuInteractionHandler.GotFocus(System.Object,Avalonia.Input.GotFocusEventArgs) - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - 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.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.Platform.InsetsManagerBase.get_DisplayEdgeToEdge - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - 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.Primitives.AccessText.get_AccessKey - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Primitives.AdornerLayer.#ctor - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Primitives.OverlayPopupHost.#ctor(Avalonia.Controls.Primitives.OverlayLayer) - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.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/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Primitives.OverlayPopupHost.CreatePopupHost(Avalonia.Visual,Avalonia.IAvaloniaDependencyResolver,System.Boolean) - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - 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.Primitives.OverlayPopupHost.SetChild(Avalonia.Controls.Control) - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Primitives.OverlayPopupHost.TakeFocus - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Primitives.Popup.get_Host - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - 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.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.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 - 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.Controls.Primitives.TextSearch.GetText(Avalonia.Interactivity.Interactive) - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Primitives.TextSearch.GetTextBinding(Avalonia.Interactivity.Interactive) - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - 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.Controls.Primitives.TextSearch.SetText(Avalonia.Interactivity.Interactive,System.String) - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Primitives.TextSearch.SetTextBinding(Avalonia.Interactivity.Interactive,Avalonia.Data.BindingBase) - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - 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.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.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 - 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.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.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.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.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 - 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 - M:Avalonia.Controls.Primitives.VisualLayerManager.get_AdornerLayer - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Primitives.VisualLayerManager.get_ChromeOverlayLayer - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Primitives.VisualLayerManager.get_IsPopup - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Primitives.VisualLayerManager.get_LightDismissOverlayLayer - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Primitives.VisualLayerManager.get_OverlayLayer - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Primitives.VisualLayerManager.get_TextSelectorLayer - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Primitives.VisualLayerManager.set_IsPopup(System.Boolean) - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - 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.TabbedPage.FindNextEnabledTab(System.Int32,System.Int32) - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.TabItem.get_Icon - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - 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.TopLevel.#ctor(Avalonia.Platform.ITopLevelImpl,Avalonia.IAvaloniaDependencyResolver) - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.TopLevel.get_PlatformSettings - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.TopLevel.StartRendering - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.TopLevel.StopRendering - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - 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.Window.ExtendClientAreaToDecorationsChanged(System.Boolean) - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Window.get_ExtendClientAreaChromeHints - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Window.get_SystemDecorations - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Window.set_ExtendClientAreaChromeHints(Avalonia.Platform.ExtendClientAreaChromeHints) - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.Window.SortWindowsByZOrder(Avalonia.Controls.Window[]) - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Controls.WindowBase.ArrangeSetBounds(Avalonia.Size) - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Platform.ITopLevelImpl.get_Surfaces - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Platform.IWindowImpl.GetWindowsZOrder(System.Span{Avalonia.Controls.Window},System.Span{System.Int64}) - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Platform.IWindowImpl.SetExtendClientAreaChromeHints(Avalonia.Platform.ExtendClientAreaChromeHints) - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - M:Avalonia.Platform.IWindowImpl.SetSystemDecorations(Avalonia.Controls.SystemDecorations) - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - 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.Platform.Screen.get_PixelDensity - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0002 - 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.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.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.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.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.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.Platform.Screen.set_WorkingArea(Avalonia.PixelRect) - 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/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 - M:Avalonia.OpenGL.Egl.EglPlatformSurfaceRenderTargetBase.BeginDraw - baseline/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - - - CP0002 - M:Avalonia.OpenGL.Egl.EglPlatformSurfaceRenderTargetBase.BeginDraw(System.Nullable{Avalonia.PixelSize}) - baseline/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - - - CP0002 - M:Avalonia.OpenGL.Egl.EglPlatformSurfaceRenderTargetBase.BeginDrawCore - baseline/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - - - CP0002 - M:Avalonia.OpenGL.Egl.EglPlatformSurfaceRenderTargetBase.BeginDrawCore(System.Nullable{Avalonia.PixelSize}) - baseline/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - - - CP0002 - M:Avalonia.OpenGL.IGlPlatformSurfaceRenderTargetFactory.CanRenderToSurface(Avalonia.OpenGL.IGlContext,System.Object) - baseline/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - - - CP0002 - M:Avalonia.OpenGL.IGlPlatformSurfaceRenderTargetFactory.CreateRenderTarget(Avalonia.OpenGL.IGlContext,System.Object) - baseline/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - - - CP0002 - M:Avalonia.OpenGL.Surfaces.IGlPlatformSurfaceRenderTarget.BeginDraw - baseline/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - - - CP0002 - M:Avalonia.OpenGL.Surfaces.IGlPlatformSurfaceRenderTarget.BeginDraw(System.Nullable{Avalonia.PixelSize}) - baseline/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - - - CP0002 - M:Avalonia.OpenGL.Surfaces.IGlPlatformSurfaceRenderTarget.get_IsCorrupted - baseline/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - - - CP0002 - M:Avalonia.Vulkan.IVulkanKhrSurfacePlatformSurfaceFactory.CanRenderToSurface(Avalonia.Vulkan.IVulkanPlatformGraphicsContext,System.Object) - baseline/Avalonia/lib/net8.0/Avalonia.Vulkan.dll - current/Avalonia/lib/net8.0/Avalonia.Vulkan.dll - - - CP0002 - M:Avalonia.Vulkan.IVulkanKhrSurfacePlatformSurfaceFactory.CreateSurface(Avalonia.Vulkan.IVulkanPlatformGraphicsContext,System.Object) - baseline/Avalonia/lib/net8.0/Avalonia.Vulkan.dll - current/Avalonia/lib/net8.0/Avalonia.Vulkan.dll - - - CP0002 - M:Avalonia.Vulkan.IVulkanPlatformGraphicsContext.CreateRenderTarget(System.Collections.Generic.IEnumerable{System.Object}) - baseline/Avalonia/lib/net8.0/Avalonia.Vulkan.dll - current/Avalonia/lib/net8.0/Avalonia.Vulkan.dll - - - CP0002 - F:Avalonia.Media.Fonts.FontCollectionBase._glyphTypefaceCache - baseline/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - current/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Media.Fonts.FontCollectionBase.Initialize(Avalonia.Platform.IFontManagerImpl) - baseline/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - current/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - - - CP0002 - M:Avalonia.Media.Fonts.IFontCollection.Initialize(Avalonia.Platform.IFontManagerImpl) - baseline/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - current/Avalonia/lib/netstandard2.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/netstandard2.0/Avalonia.Base.dll - 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.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 - - - CP0005 - M:Avalonia.Controls.Embedding.Offscreen.OffscreenTopLevelImplBase.get_Surfaces - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0005 - P:Avalonia.Controls.Embedding.Offscreen.OffscreenTopLevelImplBase.Surfaces - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0005 - M:Avalonia.OpenGL.Egl.EglPlatformSurfaceRenderTargetBase.BeginDrawCore(Avalonia.Platform.IRenderTarget.RenderTargetSceneInfo) - baseline/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - - - CP0005 - M:Avalonia.OpenGL.Egl.EglPlatformSurfaceRenderTargetBase.BeginDrawCore(System.Nullable{Avalonia.PixelSize}) - baseline/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - - - CP0005 - M:Avalonia.Controls.Embedding.Offscreen.OffscreenTopLevelImplBase.get_Surfaces - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0005 - P:Avalonia.Controls.Embedding.Offscreen.OffscreenTopLevelImplBase.Surfaces - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0005 - M:Avalonia.OpenGL.Egl.EglPlatformSurfaceRenderTargetBase.BeginDrawCore(Avalonia.Platform.IRenderTarget.RenderTargetSceneInfo) - baseline/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - - - CP0005 - M:Avalonia.OpenGL.Egl.EglPlatformSurfaceRenderTargetBase.BeginDrawCore(System.Nullable{Avalonia.PixelSize}) - baseline/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - - - CP0006 - E:Avalonia.Input.IInputElement.GotFocus - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0006 - E:Avalonia.Input.IInputElement.LostFocus - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Input.IFocusManager.FindFirstFocusableElement - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Input.IFocusManager.FindLastFocusableElement - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Input.IFocusManager.FindNextElement(Avalonia.Input.NavigationDirection,Avalonia.Input.FindNextElementOptions) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Input.IFocusManager.Focus(Avalonia.Input.IInputElement,Avalonia.Input.NavigationMethod,Avalonia.Input.KeyModifiers) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Input.IFocusManager.TryMoveFocus(Avalonia.Input.NavigationDirection,Avalonia.Input.FindNextElementOptions) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.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.Input.Platform.IPlatformDragSource.DoDragDropAsync(Avalonia.Input.PointerPressedEventArgs,Avalonia.Input.IDataTransfer,Avalonia.Input.DragDropEffects) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Platform.ICursorFactory.CreateCursor(Avalonia.Media.Imaging.Bitmap,Avalonia.PixelPoint) - 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.IDrawingContextLayerImpl.CreateDrawingContext - 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 - - - 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 - - - CP0006 - M:Avalonia.Platform.IPlatformRenderInterfaceContext.CreateRenderTarget(System.Collections.Generic.IEnumerable{Avalonia.Platform.Surfaces.IPlatformRenderSurface}) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Platform.IRenderTarget.CreateDrawingContext(Avalonia.PixelSize,Avalonia.Platform.RenderTargetDrawingContextProperties@) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Platform.IRenderTarget.CreateDrawingContext(Avalonia.Platform.IRenderTarget.RenderTargetSceneInfo,Avalonia.Platform.RenderTargetDrawingContextProperties@) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Platform.IRenderTargetBitmapImpl.CreateDrawingContext - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Rendering.IRenderTimer.Start - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Rendering.IRenderTimer.Stop - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0006 - P:Avalonia.Input.IInputRoot.FocusRoot - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0006 - P:Avalonia.Platform.IDrawingContextLayerImpl.IsCorrupted - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.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 - P:Avalonia.Platform.IPlatformRenderInterfaceContext.MaxOffscreenRenderTargetPixelSize - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0006 - P:Avalonia.Platform.IReadableBitmapImpl.AlphaFormat - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0006 - P:Avalonia.Platform.IRenderTarget.Properties - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Platform.IWindowImpl.SetWindowDecorations(Avalonia.Controls.WindowDecorations) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0006 - M:Avalonia.Platform.IWindowingPlatform.GetWindowsZOrder(System.ReadOnlySpan{Avalonia.Platform.IWindowImpl},System.Span{System.Int64}) - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0006 - P:Avalonia.Platform.ITopLevelImpl.Surfaces - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0006 - P:Avalonia.Platform.IWindowImpl.RequestedDrawnDecorations - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0006 - P:Avalonia.Platform.IWindowImpl.WindowStateGetterIsUsable - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0006 - M:Avalonia.OpenGL.IGlPlatformSurfaceRenderTargetFactory.CanRenderToSurface(Avalonia.OpenGL.IGlContext,Avalonia.Platform.Surfaces.IPlatformRenderSurface) - baseline/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - - - CP0006 - M:Avalonia.OpenGL.IGlPlatformSurfaceRenderTargetFactory.CreateRenderTarget(Avalonia.OpenGL.IGlContext,Avalonia.Platform.Surfaces.IPlatformRenderSurface) - baseline/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - - - CP0006 - M:Avalonia.OpenGL.Surfaces.IGlPlatformSurfaceRenderTarget.BeginDraw(Avalonia.Platform.IRenderTarget.RenderTargetSceneInfo) - baseline/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - - - CP0006 - M:Avalonia.OpenGL.Surfaces.IGlPlatformSurfaceRenderTarget.BeginDraw(System.Nullable{Avalonia.PixelSize}) - baseline/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - - - CP0006 - P:Avalonia.OpenGL.Surfaces.IGlPlatformSurfaceRenderTarget.IsCorrupted - baseline/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net10.0/Avalonia.OpenGL.dll - - - CP0006 - M:Avalonia.Vulkan.IVulkanKhrSurfacePlatformSurfaceFactory.CanRenderToSurface(Avalonia.Vulkan.IVulkanPlatformGraphicsContext,Avalonia.Platform.Surfaces.IPlatformRenderSurface) - baseline/Avalonia/lib/net10.0/Avalonia.Vulkan.dll - current/Avalonia/lib/net10.0/Avalonia.Vulkan.dll - - - CP0006 - M:Avalonia.Vulkan.IVulkanKhrSurfacePlatformSurfaceFactory.CreateSurface(Avalonia.Vulkan.IVulkanPlatformGraphicsContext,Avalonia.Platform.Surfaces.IPlatformRenderSurface) - baseline/Avalonia/lib/net10.0/Avalonia.Vulkan.dll - current/Avalonia/lib/net10.0/Avalonia.Vulkan.dll - - - CP0006 - M:Avalonia.Vulkan.IVulkanPlatformGraphicsContext.CreateRenderTarget(System.Collections.Generic.IEnumerable{Avalonia.Platform.Surfaces.IPlatformRenderSurface}) - baseline/Avalonia/lib/net10.0/Avalonia.Vulkan.dll - current/Avalonia/lib/net10.0/Avalonia.Vulkan.dll - - - CP0006 - M:Avalonia.Input.Platform.IClipboard.SetDataAsync(Avalonia.Input.IAsyncDataTransfer) - baseline/Avalonia/lib/net6.0/Avalonia.Base.dll - current/Avalonia/lib/net6.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Input.Platform.IClipboard.TryGetDataAsync - baseline/Avalonia/lib/net6.0/Avalonia.Base.dll - current/Avalonia/lib/net6.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Input.Platform.IClipboard.TryGetInProcessDataAsync - baseline/Avalonia/lib/net6.0/Avalonia.Base.dll - current/Avalonia/lib/net6.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Input.Platform.IPlatformDragSource.DoDragDropAsync(Avalonia.Input.PointerEventArgs,Avalonia.Input.IDataTransfer,Avalonia.Input.DragDropEffects) - baseline/Avalonia/lib/net6.0/Avalonia.Base.dll - current/Avalonia/lib/net6.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/net6.0/Avalonia.Base.dll - current/Avalonia/lib/net6.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Platform.IPlatformRenderInterfaceImportedImage.SnapshotWithTimelineSemaphores(Avalonia.Platform.IPlatformRenderInterfaceImportedSemaphore,System.UInt64,Avalonia.Platform.IPlatformRenderInterfaceImportedSemaphore,System.UInt64) - baseline/Avalonia/lib/net6.0/Avalonia.Base.dll - current/Avalonia/lib/net6.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Platform.Storage.IStorageProvider.SaveFilePickerWithResultAsync(Avalonia.Platform.Storage.FilePickerSaveOptions) - baseline/Avalonia/lib/net6.0/Avalonia.Base.dll - current/Avalonia/lib/net6.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.OpenGL.IGlExternalSemaphore.SignalTimelineSemaphore(Avalonia.OpenGL.IGlExternalImageTexture,System.UInt64) - baseline/Avalonia/lib/net6.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net6.0/Avalonia.OpenGL.dll - - - CP0006 - M:Avalonia.OpenGL.IGlExternalSemaphore.WaitTimelineSemaphore(Avalonia.OpenGL.IGlExternalImageTexture,System.UInt64) - baseline/Avalonia/lib/net6.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net6.0/Avalonia.OpenGL.dll - - - CP0006 - P:Avalonia.OpenGL.IGlExternalImageTexture.TextureType - baseline/Avalonia/lib/net6.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net6.0/Avalonia.OpenGL.dll - - - CP0006 - E:Avalonia.Input.IInputElement.GotFocus - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0006 - E:Avalonia.Input.IInputElement.LostFocus - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Input.IFocusManager.FindFirstFocusableElement - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Input.IFocusManager.FindLastFocusableElement - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Input.IFocusManager.FindNextElement(Avalonia.Input.NavigationDirection,Avalonia.Input.FindNextElementOptions) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Input.IFocusManager.Focus(Avalonia.Input.IInputElement,Avalonia.Input.NavigationMethod,Avalonia.Input.KeyModifiers) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Input.IFocusManager.TryMoveFocus(Avalonia.Input.NavigationDirection,Avalonia.Input.FindNextElementOptions) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.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/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Input.Platform.IClipboard.SetDataAsync(Avalonia.Input.IAsyncDataTransfer) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Input.Platform.IClipboard.TryGetDataAsync - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Input.Platform.IClipboard.TryGetInProcessDataAsync - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Input.Platform.IPlatformDragSource.DoDragDropAsync(Avalonia.Input.PointerEventArgs,Avalonia.Input.IDataTransfer,Avalonia.Input.DragDropEffects) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Input.Platform.IPlatformDragSource.DoDragDropAsync(Avalonia.Input.PointerPressedEventArgs,Avalonia.Input.IDataTransfer,Avalonia.Input.DragDropEffects) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Platform.ICursorFactory.CreateCursor(Avalonia.Media.Imaging.Bitmap,Avalonia.PixelPoint) - 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) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Platform.IDrawingContextLayerImpl.CreateDrawingContext - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.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/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.IPlatformRenderInterfaceContext.CreateRenderTarget(System.Collections.Generic.IEnumerable{Avalonia.Platform.Surfaces.IPlatformRenderSurface}) - 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) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Platform.IRenderTarget.CreateDrawingContext(Avalonia.PixelSize,Avalonia.Platform.RenderTargetDrawingContextProperties@) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Platform.IRenderTarget.CreateDrawingContext(Avalonia.Platform.IRenderTarget.RenderTargetSceneInfo,Avalonia.Platform.RenderTargetDrawingContextProperties@) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Platform.IRenderTargetBitmapImpl.CreateDrawingContext - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Platform.Storage.IStorageProvider.SaveFilePickerWithResultAsync(Avalonia.Platform.Storage.FilePickerSaveOptions) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Rendering.IRenderTimer.Start - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Rendering.IRenderTimer.Stop - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0006 - P:Avalonia.Input.IInputRoot.FocusRoot - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0006 - P:Avalonia.Platform.IDrawingContextLayerImpl.IsCorrupted - 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 - P:Avalonia.Platform.IRenderTarget.Properties - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Platform.IWindowImpl.SetWindowDecorations(Avalonia.Controls.WindowDecorations) - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0006 - M:Avalonia.Platform.IWindowingPlatform.GetWindowsZOrder(System.ReadOnlySpan{Avalonia.Platform.IWindowImpl},System.Span{System.Int64}) - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0006 - P:Avalonia.Platform.ITopLevelImpl.Surfaces - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0006 - P:Avalonia.Platform.IWindowImpl.RequestedDrawnDecorations - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0006 - P:Avalonia.Platform.IWindowImpl.WindowStateGetterIsUsable - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0006 - M:Avalonia.OpenGL.IGlExternalSemaphore.SignalTimelineSemaphore(Avalonia.OpenGL.IGlExternalImageTexture,System.UInt64) - baseline/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - - - CP0006 - M:Avalonia.OpenGL.IGlExternalSemaphore.WaitTimelineSemaphore(Avalonia.OpenGL.IGlExternalImageTexture,System.UInt64) - baseline/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - - - CP0006 - M:Avalonia.OpenGL.IGlPlatformSurfaceRenderTargetFactory.CanRenderToSurface(Avalonia.OpenGL.IGlContext,Avalonia.Platform.Surfaces.IPlatformRenderSurface) - baseline/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - - - CP0006 - M:Avalonia.OpenGL.IGlPlatformSurfaceRenderTargetFactory.CreateRenderTarget(Avalonia.OpenGL.IGlContext,Avalonia.Platform.Surfaces.IPlatformRenderSurface) - baseline/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - - - CP0006 - M:Avalonia.OpenGL.Surfaces.IGlPlatformSurfaceRenderTarget.BeginDraw(Avalonia.Platform.IRenderTarget.RenderTargetSceneInfo) - baseline/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - - - CP0006 - M:Avalonia.OpenGL.Surfaces.IGlPlatformSurfaceRenderTarget.BeginDraw(System.Nullable{Avalonia.PixelSize}) - baseline/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - - - CP0006 - P:Avalonia.OpenGL.IGlExternalImageTexture.TextureType - baseline/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - - - CP0006 - P:Avalonia.OpenGL.Surfaces.IGlPlatformSurfaceRenderTarget.IsCorrupted - baseline/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - current/Avalonia/lib/net8.0/Avalonia.OpenGL.dll - - - CP0006 - M:Avalonia.Vulkan.IVulkanKhrSurfacePlatformSurfaceFactory.CanRenderToSurface(Avalonia.Vulkan.IVulkanPlatformGraphicsContext,Avalonia.Platform.Surfaces.IPlatformRenderSurface) - baseline/Avalonia/lib/net8.0/Avalonia.Vulkan.dll - current/Avalonia/lib/net8.0/Avalonia.Vulkan.dll - - - CP0006 - M:Avalonia.Vulkan.IVulkanKhrSurfacePlatformSurfaceFactory.CreateSurface(Avalonia.Vulkan.IVulkanPlatformGraphicsContext,Avalonia.Platform.Surfaces.IPlatformRenderSurface) - baseline/Avalonia/lib/net8.0/Avalonia.Vulkan.dll - current/Avalonia/lib/net8.0/Avalonia.Vulkan.dll - - - CP0006 - M:Avalonia.Vulkan.IVulkanPlatformGraphicsContext.CreateRenderTarget(System.Collections.Generic.IEnumerable{Avalonia.Platform.Surfaces.IPlatformRenderSurface}) - baseline/Avalonia/lib/net8.0/Avalonia.Vulkan.dll - current/Avalonia/lib/net8.0/Avalonia.Vulkan.dll - - - CP0006 - M:Avalonia.Input.Platform.IClipboard.SetDataAsync(Avalonia.Input.IAsyncDataTransfer) - baseline/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - current/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Input.Platform.IClipboard.TryGetDataAsync - baseline/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - current/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Input.Platform.IClipboard.TryGetInProcessDataAsync - baseline/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - current/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Input.Platform.IPlatformDragSource.DoDragDropAsync(Avalonia.Input.PointerEventArgs,Avalonia.Input.IDataTransfer,Avalonia.Input.DragDropEffects) - baseline/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - current/Avalonia/lib/netstandard2.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/netstandard2.0/Avalonia.Base.dll - current/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Platform.IPlatformRenderInterfaceImportedImage.SnapshotWithTimelineSemaphores(Avalonia.Platform.IPlatformRenderInterfaceImportedSemaphore,System.UInt64,Avalonia.Platform.IPlatformRenderInterfaceImportedSemaphore,System.UInt64) - baseline/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - current/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.Platform.Storage.IStorageProvider.SaveFilePickerWithResultAsync(Avalonia.Platform.Storage.FilePickerSaveOptions) - baseline/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - current/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - - - CP0006 - M:Avalonia.OpenGL.IGlExternalSemaphore.SignalTimelineSemaphore(Avalonia.OpenGL.IGlExternalImageTexture,System.UInt64) - baseline/Avalonia/lib/netstandard2.0/Avalonia.OpenGL.dll - current/Avalonia/lib/netstandard2.0/Avalonia.OpenGL.dll - - - CP0006 - M:Avalonia.OpenGL.IGlExternalSemaphore.WaitTimelineSemaphore(Avalonia.OpenGL.IGlExternalImageTexture,System.UInt64) - baseline/Avalonia/lib/netstandard2.0/Avalonia.OpenGL.dll - current/Avalonia/lib/netstandard2.0/Avalonia.OpenGL.dll - - - CP0006 - P:Avalonia.OpenGL.IGlExternalImageTexture.TextureType - 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.Input.IInputRoot - 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.IDrawingContextLayerImpl - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0008 - T:Avalonia.Platform.IDrawingContextLayerWithRenderContextAffinityImpl - 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.IRenderTargetBitmapImpl - 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.EmbeddableControlRoot - 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.Controls.Primitives.OverlayPopupHost - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0008 - T:Avalonia.Controls.Primitives.PopupRoot - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0008 - T:Avalonia.Controls.TopLevel - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0008 - T:Avalonia.Controls.Window - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0008 - T:Avalonia.Controls.WindowBase - 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.Dialogs.AboutAvaloniaDialog - baseline/Avalonia/lib/net10.0/Avalonia.Dialogs.dll - current/Avalonia/lib/net10.0/Avalonia.Dialogs.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.Egl.EglPlatformSurfaceRenderTargetBase - 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.Input.IInputRoot - 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.IDrawingContextLayerImpl - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0008 - T:Avalonia.Platform.IDrawingContextLayerWithRenderContextAffinityImpl - 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.IRenderTargetBitmapImpl - 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.EmbeddableControlRoot - 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.Controls.Primitives.OverlayPopupHost - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0008 - T:Avalonia.Controls.Primitives.PopupRoot - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0008 - T:Avalonia.Controls.TopLevel - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0008 - T:Avalonia.Controls.Window - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0008 - T:Avalonia.Controls.WindowBase - 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.Dialogs.AboutAvaloniaDialog - baseline/Avalonia/lib/net8.0/Avalonia.Dialogs.dll - current/Avalonia/lib/net8.0/Avalonia.Dialogs.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.Egl.EglPlatformSurfaceRenderTargetBase - 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.Input.HoldingRoutedEventArgs - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0009 - T:Avalonia.Controls.Primitives.AdornerLayer - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0009 - T:Avalonia.Controls.Primitives.OverlayPopupHost - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.dll - - - CP0009 - T:Avalonia.Controls.Primitives.VisualLayerManager - baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll - current/Avalonia/lib/net10.0/Avalonia.Controls.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.Input.HoldingRoutedEventArgs - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0009 - T:Avalonia.Controls.Primitives.AdornerLayer - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0009 - T:Avalonia.Controls.Primitives.OverlayPopupHost - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.dll - - - CP0009 - T:Avalonia.Controls.Primitives.VisualLayerManager - baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll - current/Avalonia/lib/net8.0/Avalonia.Controls.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 - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0012 - M:Avalonia.Media.Fonts.FontCollectionBase.get_Item(System.Int32) - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0012 - M:Avalonia.Media.Fonts.FontCollectionBase.GetEnumerator - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0012 - P:Avalonia.Media.Fonts.FontCollectionBase.Count - baseline/Avalonia/lib/net10.0/Avalonia.Base.dll - current/Avalonia/lib/net10.0/Avalonia.Base.dll - - - CP0012 - P:Avalonia.Media.Fonts.FontCollectionBase.Item(System.Int32) - 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 - baseline/Avalonia/lib/net6.0/Avalonia.Base.dll - current/Avalonia/lib/net6.0/Avalonia.Base.dll - - - CP0012 - M:Avalonia.Media.Fonts.FontCollectionBase.get_Item(System.Int32) - baseline/Avalonia/lib/net6.0/Avalonia.Base.dll - current/Avalonia/lib/net6.0/Avalonia.Base.dll - - - CP0012 - M:Avalonia.Media.Fonts.FontCollectionBase.GetEnumerator - baseline/Avalonia/lib/net6.0/Avalonia.Base.dll - current/Avalonia/lib/net6.0/Avalonia.Base.dll - - - CP0012 - P:Avalonia.Media.Fonts.FontCollectionBase.Count - baseline/Avalonia/lib/net6.0/Avalonia.Base.dll - current/Avalonia/lib/net6.0/Avalonia.Base.dll - - - CP0012 - P:Avalonia.Media.Fonts.FontCollectionBase.Item(System.Int32) - baseline/Avalonia/lib/net6.0/Avalonia.Base.dll - current/Avalonia/lib/net6.0/Avalonia.Base.dll - - - CP0012 - M:Avalonia.Media.Fonts.FontCollectionBase.get_Count - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0012 - M:Avalonia.Media.Fonts.FontCollectionBase.get_Item(System.Int32) - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0012 - M:Avalonia.Media.Fonts.FontCollectionBase.GetEnumerator - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0012 - P:Avalonia.Media.Fonts.FontCollectionBase.Count - baseline/Avalonia/lib/net8.0/Avalonia.Base.dll - current/Avalonia/lib/net8.0/Avalonia.Base.dll - - - CP0012 - P:Avalonia.Media.Fonts.FontCollectionBase.Item(System.Int32) - 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 - baseline/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - current/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - - - CP0012 - M:Avalonia.Media.Fonts.FontCollectionBase.get_Item(System.Int32) - baseline/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - current/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - - - CP0012 - M:Avalonia.Media.Fonts.FontCollectionBase.GetEnumerator - baseline/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - current/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - - - CP0012 - P:Avalonia.Media.Fonts.FontCollectionBase.Count - baseline/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - current/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - - - CP0012 - P:Avalonia.Media.Fonts.FontCollectionBase.Item(System.Int32) - baseline/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - current/Avalonia/lib/netstandard2.0/Avalonia.Base.dll - - diff --git a/build/SharedVersion.props b/build/SharedVersion.props index b8c0dd4d43..cff9a24f54 100644 --- a/build/SharedVersion.props +++ b/build/SharedVersion.props @@ -2,7 +2,7 @@ xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> Avalonia - 12.0.999 + 12.1.999 Avalonia Team Copyright 2013-$([System.DateTime]::Now.ToString(`yyyy`)) © The AvaloniaUI Project https://avaloniaui.net/?utm_source=nuget&utm_medium=referral&utm_content=project_homepage_link diff --git a/native/Avalonia.Native/src/OSX/AvnWindow.mm b/native/Avalonia.Native/src/OSX/AvnWindow.mm index c4e715229b..b2f20d556b 100644 --- a/native/Avalonia.Native/src/OSX/AvnWindow.mm +++ b/native/Avalonia.Native/src/OSX/AvnWindow.mm @@ -656,6 +656,18 @@ - (void)raisePropertyChanged:(AvnAutomationProperty)property { + switch (property) + { + case AutomationPeer_Name: + NSAccessibilityPostNotification(self, NSAccessibilityTitleChangedNotification); + break; + case AutomationPeer_BoundingRectangle: + NSAccessibilityPostNotification(self, NSAccessibilityMovedNotification); + NSAccessibilityPostNotification(self, NSAccessibilityResizedNotification); + break; + default: + break; + } } @end diff --git a/native/Avalonia.Native/src/OSX/StorageProvider.mm b/native/Avalonia.Native/src/OSX/StorageProvider.mm index e0a471a4f3..a608f6ffaf 100644 --- a/native/Avalonia.Native/src/OSX/StorageProvider.mm +++ b/native/Avalonia.Native/src/OSX/StorageProvider.mm @@ -82,14 +82,16 @@ public: if(ppv == nullptr) return E_POINTER; - NSError* error; + *ppv = nullptr; + + NSError* error = nil; auto fileUri = [NSURL URLWithString: GetNSStringAndRelease(fileUriStr)]; auto bookmarkData = [fileUri bookmarkDataWithOptions:NSURLBookmarkCreationWithSecurityScope includingResourceValuesForKeys:nil relativeToURL:nil error:&error]; if (bookmarkData) { *ppv = CreateByteArray((void*)bookmarkData.bytes, (int)bookmarkData.length); } - if (error != nil) + else if (error != nil && err != nullptr) { *err = CreateAvnString([error localizedDescription]); } @@ -172,6 +174,7 @@ public: { @autoreleasepool { + ComPtr ownedEvents(events); // for use in the callback auto panel = [NSOpenPanel openPanel]; panel.allowsMultipleSelection = allowMultiple; @@ -201,7 +204,7 @@ public: if(urls.count > 0) { auto uriStrings = CreateAvnStringArray(urls); - events->OnCompleted(uriStrings); + ownedEvents->OnCompleted(uriStrings); [panel orderOut:panel]; @@ -214,7 +217,7 @@ public: } } - events->OnCompleted(nullptr); + ownedEvents->OnCompleted(nullptr); }; @@ -239,6 +242,7 @@ public: { @autoreleasepool { + ComPtr ownedEvents(events); // for use in the callback auto panel = [NSOpenPanel openPanel]; panel.allowsMultipleSelection = allowMultiple; @@ -273,7 +277,7 @@ public: if(urls.count > 0) { auto uriStrings = CreateAvnStringArray(urls); - events->OnCompleted(uriStrings); + ownedEvents->OnCompleted(uriStrings); [panel orderOut:panel]; @@ -286,7 +290,7 @@ public: } } - events->OnCompleted(nullptr); + ownedEvents->OnCompleted(nullptr); }; @@ -310,6 +314,7 @@ public: { @autoreleasepool { + ComPtr ownedEvents(events); // for use in the callback auto panel = [NSSavePanel savePanel]; if(title != nullptr) @@ -350,7 +355,7 @@ public: auto url = [panel URL]; auto urls = [NSArray arrayWithObject:url]; auto uriStrings = CreateAvnStringArray(urls); - events->OnCompletedWithFilter(uriStrings, selectedIndex); + ownedEvents->OnCompletedWithFilter(uriStrings, selectedIndex); [panel orderOut:panel]; @@ -362,7 +367,7 @@ public: return; } - events->OnCompletedWithFilter(nullptr, selectedIndex); + ownedEvents->OnCompletedWithFilter(nullptr, selectedIndex); }; @@ -395,7 +400,7 @@ public: } auto filePathUri = [fileUri filePathURL]; - if (fileUri == nil) + if (filePathUri == nil) { *ret = nullptr; return S_OK; diff --git a/native/Avalonia.Native/src/OSX/automation.mm b/native/Avalonia.Native/src/OSX/automation.mm index 6eee49f619..78552f716e 100644 --- a/native/Avalonia.Native/src/OSX/automation.mm +++ b/native/Avalonia.Native/src/OSX/automation.mm @@ -130,7 +130,7 @@ 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. + // reader focus on the item instead of passing focus to child items. default: return NSAccessibilityGroupRole; } } @@ -191,6 +191,7 @@ { switch (_peer->GetLiveSetting()) { + case LiveSettingOff: return nil; case LiveSettingPolite: return @"polite"; case LiveSettingAssertive: return @"assertive"; } @@ -488,13 +489,66 @@ - (void)raisePropertyChanged:(AvnAutomationProperty)property { - if (property == AutomationPeer_Name && _peer->GetLiveSetting() != LiveSettingOff) - [self raiseLiveRegionChanged]; + switch (property) + { + case AutomationPeer_Name: + NSAccessibilityPostNotification(self, NSAccessibilityTitleChangedNotification); + if (_peer->GetLiveSetting() != LiveSettingOff) + [self raiseLiveRegionChanged]; + break; + case ValueProvider_Value: + case RangeValueProvider_Value: + NSAccessibilityPostNotification(self, NSAccessibilityValueChangedNotification); + break; + case AutomationPeer_BoundingRectangle: + NSAccessibilityPostNotification(self, NSAccessibilityMovedNotification); + NSAccessibilityPostNotification(self, NSAccessibilityResizedNotification); + break; + case SelectionItemProvider_IsSelected: + case SelectionProvider_Selection: + NSAccessibilityPostNotification(self, NSAccessibilitySelectedChildrenChangedNotification); + break; + case ToggleProvider_ToggleState: + case ExpandCollapseProvider_ExpandCollapseState: + NSAccessibilityPostNotification(self, NSAccessibilityValueChangedNotification); + break; + default: + break; + } } - (void)raiseLiveRegionChanged { NSAccessibilityPostNotification(self, @"AXLiveRegionChanged" /* kAXLiveRegionChangedNotification */); + + // Announce the new string + auto name = _peer->GetName(); + if (name != nullptr) + { + NSAccessibilityPriorityLevel priority = NSAccessibilityPriorityLow; + switch (_peer->GetLiveSetting()) + { + case LiveSettingOff: + return; + case LiveSettingPolite: + priority = NSAccessibilityPriorityMedium; + break; + case LiveSettingAssertive: + priority = NSAccessibilityPriorityHigh; + break; + } + + NSDictionary *userInfo = @{ + NSAccessibilityAnnouncementKey: GetNSStringAndRelease(name), + NSAccessibilityPriorityKey: @(priority) + }; + + id topLevel = [self accessibilityTopLevelUIElement]; + if ([topLevel isKindOfClass:[AvnWindow class]]) + { + NSAccessibilityPostNotificationWithUserInfo(topLevel, NSAccessibilityAnnouncementRequestedNotification, userInfo); + } + } } - (void)setAccessibilityFocused:(BOOL)accessibilityFocused diff --git a/samples/ControlCatalog/App.xaml b/samples/ControlCatalog/App.xaml index 179f64233e..6ab30cc180 100644 --- a/samples/ControlCatalog/App.xaml +++ b/samples/ControlCatalog/App.xaml @@ -8,7 +8,8 @@ - + + diff --git a/samples/ControlCatalog/App.xaml.cs b/samples/ControlCatalog/App.xaml.cs index f14fbb1fa3..71e4113a3a 100644 --- a/samples/ControlCatalog/App.xaml.cs +++ b/samples/ControlCatalog/App.xaml.cs @@ -18,7 +18,7 @@ namespace ControlCatalog private FluentTheme? _fluentTheme; private SimpleTheme? _simpleTheme; private IStyle? _colorPickerFluent, _colorPickerSimple; - + public App() { DataContext = new ApplicationViewModel(); @@ -34,7 +34,7 @@ namespace ControlCatalog _simpleTheme = (SimpleTheme)Resources["SimpleTheme"]!; _colorPickerFluent = (IStyle)Resources["ColorPickerFluent"]!; _colorPickerSimple = (IStyle)Resources["ColorPickerSimple"]!; - + SetCatalogThemes(CatalogTheme.Fluent); } @@ -44,16 +44,22 @@ namespace ControlCatalog { desktopLifetime.MainWindow = new MainWindow { DataContext = new MainWindowViewModel() }; } - else if(ApplicationLifetime is IActivityApplicationLifetime singleViewFactoryApplicationLifetime) + else if (ApplicationLifetime is IActivityApplicationLifetime singleViewFactoryApplicationLifetime) { - singleViewFactoryApplicationLifetime.MainViewFactory = () => new MainView { DataContext = new MainWindowViewModel() }; + singleViewFactoryApplicationLifetime.MainViewFactory = () => new PageNavigationHost() + { + Page = new MainView { DataContext = new MainWindowViewModel() } + }; } else if (ApplicationLifetime is ISingleViewApplicationLifetime singleViewLifetime) { - singleViewLifetime.MainView = new MainView { DataContext = new MainWindowViewModel() }; + singleViewLifetime.MainView = new PageNavigationHost() + { + Page = new MainView { DataContext = new MainWindowViewModel() } + }; } - if (this.TryGetFeature() is {} activatableApplicationLifetime) + if (this.TryGetFeature() is { } activatableApplicationLifetime) { activatableApplicationLifetime.Activated += (sender, args) => Console.WriteLine($"App activated: {args.Kind}"); @@ -99,14 +105,14 @@ namespace ControlCatalog } private CatalogTheme _prevTheme; - public static CatalogTheme CurrentTheme => ((App)Current!)._prevTheme; + public static CatalogTheme CurrentTheme => ((App)Current!)._prevTheme; public static void SetCatalogThemes(CatalogTheme theme) { var app = (App)Current!; var prevTheme = app._prevTheme; app._prevTheme = theme; var shouldReopenWindow = prevTheme != theme; - + if (app._themeStylesContainer.Count == 0) { app._themeStylesContainer.Add(new Style()); @@ -130,18 +136,27 @@ namespace ControlCatalog if (app.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktopLifetime) { var oldWindow = desktopLifetime.MainWindow; - var newWindow = new MainWindow(); + var newWindow = new MainWindow() + { + DataContext = new MainWindowViewModel() + }; desktopLifetime.MainWindow = newWindow; newWindow.Show(); oldWindow?.Close(); } else if (app.ApplicationLifetime is IActivityApplicationLifetime singleViewFactoryApplicationLifetime) { - singleViewFactoryApplicationLifetime.MainViewFactory = () => new MainView { DataContext = new MainWindowViewModel() }; + singleViewFactoryApplicationLifetime.MainViewFactory = () => new PageNavigationHost() + { + Page = new MainView { DataContext = new MainWindowViewModel() } + }; } else if (app.ApplicationLifetime is ISingleViewApplicationLifetime singleViewLifetime) { - singleViewLifetime.MainView = new MainView(); + singleViewLifetime.MainView = new PageNavigationHost() + { + Page = new MainView { DataContext = new MainWindowViewModel() } + }; } } } diff --git a/samples/ControlCatalog/Assets/Icon.png b/samples/ControlCatalog/Assets/Icon.png new file mode 100644 index 0000000000..41a2a618fb Binary files /dev/null and b/samples/ControlCatalog/Assets/Icon.png differ diff --git a/samples/ControlCatalog/ControlCatalog.csproj b/samples/ControlCatalog/ControlCatalog.csproj index 2ce24a4d20..800793ca0b 100644 --- a/samples/ControlCatalog/ControlCatalog.csproj +++ b/samples/ControlCatalog/ControlCatalog.csproj @@ -14,6 +14,7 @@ + @@ -38,7 +39,12 @@ - + + + + + MSBuild:Compile + diff --git a/samples/ControlCatalog/Icons.cs b/samples/ControlCatalog/Icons.cs new file mode 100644 index 0000000000..58d0e0b7d4 --- /dev/null +++ b/samples/ControlCatalog/Icons.cs @@ -0,0 +1,194 @@ +namespace ControlCatalog +{ + internal static class Icons + { + // Layers/Composition + public const string Layers = "M12,16L19.36,10.27L21,9L12,2L3,9L4.63,10.27M12,18.54L4.62,12.81L3,14.07L12,21.07L21,14.07L19.37,12.8"; + + // Keyboard + public const string Keyboard = "M19,10H17V8H19M19,13H17V11H19M16,10H14V8H16M16,13H14V11H16M16,17H8V15H16M7,10H5V8H7M7,13H5V11H7M8,11H10V13H8M8,8H10V10H8M11,11H13V13H11M11,8H13V10H11M20,5H4C2.89,5 2,5.89 2,7V17A2,2 0 0,0 4,19H20A2,2 0 0,0 22,17V7C22,5.89 21.1,5 20,5Z"; + + // Blur/Acrylic + public const string Blur = "M14.5,10C16.43,10 18,8.43 18,6.5C18,4.57 16.43,3 14.5,3C12.57,3 11,4.57 11,6.5C11,8.43 12.57,10 14.5,10M14.5,4A2.5,2.5 0 0,1 17,6.5A2.5,2.5 0 0,1 14.5,9A2.5,2.5 0 0,1 12,6.5A2.5,2.5 0 0,1 14.5,4M8.5,14C10.43,14 12,12.43 12,10.5C12,8.57 10.43,7 8.5,7C6.57,7 5,8.57 5,10.5C5,12.43 6.57,14 8.5,14M8.5,8A2.5,2.5 0 0,1 11,10.5A2.5,2.5 0 0,1 8.5,13A2.5,2.5 0 0,1 6,10.5A2.5,2.5 0 0,1 8.5,8M14.5,16A4.5,4.5 0 0,0 10,20.5A4.5,4.5 0 0,0 14.5,25A4.5,4.5 0 0,0 19,20.5A4.5,4.5 0 0,0 14.5,16M14.5,24A3.5,3.5 0 0,1 11,20.5A3.5,3.5 0 0,1 14.5,17A3.5,3.5 0 0,1 18,20.5A3.5,3.5 0 0,1 14.5,24Z"; + + // Adorner/Sparkle + public const string Sparkle = "M12,1L9,9L1,12L9,15L12,23L15,15L23,12L15,9"; + + // Text/AutoComplete + public const string TextInput = "M20,21H4V3H20V21M6,9H14V7H6V9M6,13H18V11H6V13M6,17H14V15H6V17Z"; + + // Border/Square + public const string Border = "M4,4H20V20H4V4M6,8V6H8V8H6M6,12V10H8V12H6M6,16V14H8V16H6M6,20V18H8V20H6M10,20V18H12V20H10M14,20V18H16V20H14M18,20V18H20V20H18M18,16V14H20V16H18M18,12V10H20V12H18M18,8V6H20V8H18M14,8V6H16V8H14M10,8V6H12V8H10Z"; + + // Lightning/Cache + public const string Lightning = "M11,21H7L13,3H17L14,10H20L11,21Z"; + + // Cursor Click/Button + public const string CursorClick = "M10.76,8.69A0.76,0.76 0 0,0 10,9.45V20.9C10,21.32 10.34,21.66 10.76,21.66C10.95,21.66 11.11,21.6 11.24,21.5L13.15,19.95L14.81,23.57C14.94,23.84 15.21,24 15.5,24C15.62,24 15.74,23.97 15.85,23.92L17.28,23.26C17.69,23.07 17.86,22.59 17.66,22.17L16,18.54L18.44,18.19C18.87,18.13 19.1,17.73 18.91,17.37L12.1,8.89C11.95,8.76 11.79,8.69 10.76,8.69M15,10V8H20V10H15M13.83,4.76L16.66,1.93L18.07,3.34L15.24,6.17L13.83,4.76M10,0V5H8V0H10M3.93,14.66L6.76,11.83L8.17,13.24L5.34,16.07L3.93,14.66M3.93,3.34L5.34,1.93L8.17,4.76L6.76,6.17L3.93,3.34M7,10H2V8H7V10Z"; + + // Spinner/ButtonSpinner + public const string Spinner = "M12,4V2A10,10 0 0,0 2,12H4A8,8 0 0,1 12,4Z"; + + // Calendar + public const string Calendar = "M19,19H5V8H19M16,1V3H8V1H6V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3H18V1M9,15H7V13H9V15M13,15H11V13H13V15M17,15H15V13H17V15M9,11H7V9H9V11M13,11H11V9H13V11M17,11H15V9H17V11Z"; + + // Canvas/Artboard + public const string Canvas = "M17.5,12A1.5,1.5 0 0,1 16,10.5A1.5,1.5 0 0,1 17.5,9A1.5,1.5 0 0,1 19,10.5A1.5,1.5 0 0,1 17.5,12M14.5,8A1.5,1.5 0 0,1 13,6.5A1.5,1.5 0 0,1 14.5,5A1.5,1.5 0 0,1 16,6.5A1.5,1.5 0 0,1 14.5,8M9.5,8A1.5,1.5 0 0,1 8,6.5A1.5,1.5 0 0,1 9.5,5A1.5,1.5 0 0,1 11,6.5A1.5,1.5 0 0,1 9.5,8M6.5,12A1.5,1.5 0 0,1 5,10.5A1.5,1.5 0 0,1 6.5,9A1.5,1.5 0 0,1 8,10.5A1.5,1.5 0 0,1 6.5,12M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A1.5,1.5 0 0,0 13.5,19.5C13.5,19.11 13.35,18.76 13.11,18.5C12.88,18.23 12.73,17.88 12.73,17.5A1.5,1.5 0 0,1 14.23,16H16A5,5 0 0,0 21,11C21,6.58 16.97,3 12,3Z"; + + // Command/Terminal + public const string Terminal = "M20,19V7H4V19H20M20,3A2,2 0 0,1 22,5V19A2,2 0 0,1 20,21H4A2,2 0 0,1 2,19V5C2,3.89 2.9,3 4,3H20M13,17V15H18V17H13M9.58,13L5.57,9H8.4L11.7,12.3C12.09,12.69 12.09,13.33 11.7,13.72L8.42,17H5.59L9.58,13Z"; + + // Slides/Carousel + public const string Slides = "M2,6H6V18H2V6M7,6H17V18H7V6M18,6H22V18H18V6Z"; + + // Checkbox + public const string Checkbox = "M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8"; + + // Clipboard + public const string Clipboard = "M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M12,3A1,1 0 0,1 13,4A1,1 0 0,1 12,5A1,1 0 0,1 11,4A1,1 0 0,1 12,3"; + + // Palette/Color + public const string Palette = "M12,3A9,9 0 0,0 3,12A9,9 0 0,0 12,21A1.5,1.5 0 0,0 13.5,19.5C13.5,19.11 13.35,18.76 13.11,18.5C12.88,18.23 12.73,17.88 12.73,17.5A1.5,1.5 0 0,1 14.23,16H16A5,5 0 0,0 21,11C21,6.58 16.97,3 12,3M6.5,12A1.5,1.5 0 0,1 5,10.5A1.5,1.5 0 0,1 6.5,9A1.5,1.5 0 0,1 8,10.5A1.5,1.5 0 0,1 6.5,12M9.5,8A1.5,1.5 0 0,1 8,6.5A1.5,1.5 0 0,1 9.5,5A1.5,1.5 0 0,1 11,6.5A1.5,1.5 0 0,1 9.5,8M14.5,8A1.5,1.5 0 0,1 13,6.5A1.5,1.5 0 0,1 14.5,5A1.5,1.5 0 0,1 16,6.5A1.5,1.5 0 0,1 14.5,8M17.5,12A1.5,1.5 0 0,1 16,10.5A1.5,1.5 0 0,1 17.5,9A1.5,1.5 0 0,1 19,10.5A1.5,1.5 0 0,1 17.5,12Z"; + + // Dropdown/ComboBox + public const string Dropdown = "M7,10L12,15L17,10H7Z"; + + // Container/Box + public const string Container = "M2,2H8V4H16V2H22V8H20V16H22V22H16V20H8V22H2V16H4V8H2V2M16,8V6H8V8H6V16H8V18H16V16H18V8H16M4,4V6H6V4H4M18,4V6H20V4H18M4,18V20H6V18H4M18,18V20H20V18H18Z"; + + // Document/Page + public const string Document = "M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M18,20H6V4H13V9H18V20Z"; + + // Menu/Context + public const string Menu = "M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z"; + + // Cursor/Pointer + public const string Cursor = "M13.64,21.97C13.14,22.21 12.54,22 12.31,21.5L10.13,16.76L7.62,18.78C7.45,18.92 7.24,19 7,19A1,1 0 0,1 6,18V3A1,1 0 0,1 7,2C7.24,2 7.47,2.09 7.64,2.23L7.65,2.22L19.14,11.86C19.57,12.22 19.39,12.92 18.83,13.03L14.83,13.78L17,18.5C17.24,19 17,19.59 16.5,19.83L13.64,21.97Z"; + + // Brush/Drawing + public const string Brush = "M20.71,4.63L19.37,3.29C19,2.9 18.35,2.9 17.96,3.29L9,12.25L11.75,15L20.71,6.04C21.1,5.65 21.1,5 20.71,4.63M7,14A3,3 0 0,0 4,17C4,18.31 2.84,19 2,19C2.92,20.22 4.5,21 6,21A4,4 0 0,0 10,17A3,3 0 0,0 7,14Z"; + + // Grid/Table + public const string Grid = "M10,4V8H14V4H10M16,4V8H20V4H16M16,10V14H20V10H16M16,16V20H20V16H16M14,20V16H10V20H14M8,20V16H4V20H8M8,14V10H4V14H8M8,8V4H4V8H8M10,14H14V10H10V14Z"; + + // Shield/Validation + public const string Shield = "M10,17L6,13L7.41,11.59L10,14.17L16.59,7.58L18,9M12,1L3,5V11C3,16.55 6.84,21.74 12,23C17.16,21.74 21,16.55 21,11V5L12,1Z"; + + // Clock + public const string Clock = "M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M16.2,16.2L11,13V7H12.5V12.2L17,14.9L16.2,16.2Z"; + + // Dialog/Message + public const string Dialog = "M20,2H4A2,2 0 0,0 2,4V22L6,18H20A2,2 0 0,0 22,16V4A2,2 0 0,0 20,2Z"; + + // DragDrop/Move + public const string DragDrop = "M13,6V11H18V7.75L22.25,12L18,16.25V13H13V18H16.25L12,22.25L7.75,18H11V13H6V16.25L1.75,12L6,7.75V11H11V6H7.75L12,1.75L16.25,6H13Z"; + + // Sidebar/Drawer + public const string Drawer = "M3,2H21A1,1 0 0,1 22,3V21A1,1 0 0,1 21,22H3A1,1 0 0,1 2,21V3A1,1 0 0,1 3,2M10,4V20H20V4H10M4,4V20H8V4H4Z"; + + // Expand + public const string Expand = "M10,21V19H6.41L10.91,14.5L9.5,13.09L5,17.59V14H3V21H10M14.5,10.91L19,6.41V10H21V3H14V5H17.59L13.09,9.5L14.5,10.91Z"; + + // Flyout/Popup + public const string Flyout = "M19,19H5V5H19M19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M7,9H10V7H7V9M7,13H17V11H7V13M7,17H14V15H7V17Z"; + + // Target/Focus + public const string Target = "M12,8A4,4 0 0,0 8,12A4,4 0 0,0 12,16A4,4 0 0,0 16,12A4,4 0 0,0 12,8M3.05,13H1V11H3.05C3.5,6.83 6.83,3.5 11,3.05V1H13V3.05C17.17,3.5 20.5,6.83 20.95,11H23V13H20.95C20.5,17.17 17.17,20.5 13,20.95V23H11V20.95C6.83,20.5 3.5,17.17 3.05,13M12,5A7,7 0 0,0 5,12A7,7 0 0,0 12,19A7,7 0 0,0 19,12A7,7 0 0,0 12,5Z"; + + // Gesture/Touch + public const string Gesture = "M5,15A2,2 0 0,0 3,17V19H7V17A2,2 0 0,0 5,15M5,11A6,6 0 0,0 -1,17H1A4,4 0 0,1 5,13V11M5,7C0.03,7 -4,11.03 -4,16V17H-2V16C-2,12.13 1.13,9 5,9V7M20.5,9.5L12,18L8.5,14.5L7.08,15.91L12,20.84L21.92,10.91L20.5,9.5Z"; + + // Image/Photo + public const string Image = "M8.5,13.5L11,16.5L14.5,12L19,18H5M21,19V5C21,3.89 20.1,3 19,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19Z"; + + // Tag/Label + public const string Tag = "M5.5,7A1.5,1.5 0 0,1 4,5.5A1.5,1.5 0 0,1 5.5,4A1.5,1.5 0 0,1 7,5.5A1.5,1.5 0 0,1 5.5,7M21.41,11.58L12.41,2.58C12.05,2.22 11.55,2 11,2H4C2.89,2 2,2.89 2,4V11C2,11.55 2.22,12.05 2.59,12.41L11.58,21.41C11.95,21.77 12.45,22 13,22C13.55,22 14.05,21.77 14.41,21.41L21.41,14.41C21.78,14.05 22,13.55 22,13C22,12.45 21.77,11.95 21.41,11.58Z"; + + // Transform/Rotate + public const string Transform = "M16.89,15.5L18.31,16.89C19.21,15.73 19.76,14.39 19.93,13H17.91C17.77,13.87 17.43,14.72 16.89,15.5M13,17.9V19.92C14.39,19.75 15.74,19.21 16.9,18.31L15.46,16.87C14.71,17.41 13.87,17.76 13,17.9M19.93,11C19.76,9.61 19.21,8.27 18.31,7.11L16.89,8.53C17.43,9.28 17.77,10.13 17.91,11M15.55,5.55L11,1V5.07C7.06,5.56 4,8.92 4,12.95C4,17.18 7.32,20.56 11.46,20.93C11.64,20.95 11.82,20.97 12,20.97C12.18,20.97 12.36,20.95 12.54,20.93C12.69,20.92 12.83,20.89 13,20.87V18.9C12.82,18.92 12.65,18.95 12.47,18.95C12.32,18.96 12.16,18.97 12,18.97C8.42,18.97 5.53,16.12 5.53,12.58C5.53,9.36 7.88,6.67 11,6.15V10L15.55,5.55Z"; + + // List + public const string List = "M7,5H21V7H7V5M7,13V11H21V13H7M4,4.5A1.5,1.5 0 0,1 5.5,6A1.5,1.5 0 0,1 4,7.5A1.5,1.5 0 0,1 2.5,6A1.5,1.5 0 0,1 4,4.5M4,10.5A1.5,1.5 0 0,1 5.5,12A1.5,1.5 0 0,1 4,13.5A1.5,1.5 0 0,1 2.5,12A1.5,1.5 0 0,1 4,10.5M7,19V17H21V19H7M4,16.5A1.5,1.5 0 0,1 5.5,18A1.5,1.5 0 0,1 4,19.5A1.5,1.5 0 0,1 2.5,18A1.5,1.5 0 0,1 4,16.5Z"; + + // Bell/Notification + public const string Bell = "M21,19V20H3V19L5,17V11C5,7.9 7.03,5.17 10,4.29C10,4.19 10,4.1 10,4A2,2 0 0,1 12,2A2,2 0 0,1 14,4C14,4.1 14,4.19 14,4.29C16.97,5.17 19,7.9 19,11V17L21,19M14,21A2,2 0 0,1 12,23A2,2 0 0,1 10,21"; + + // Number/Hash + public const string Number = "M5.41,21L6.12,17H2.12L2.47,15H6.47L7.53,9H3.53L3.88,7H7.88L8.59,3H10.59L9.88,7H15.88L16.59,3H18.59L17.88,7H21.88L21.53,9H17.53L16.47,15H20.47L20.12,17H16.12L15.41,21H13.41L14.12,17H8.12L7.41,21H5.41M9.47,9L8.41,15H14.41L15.47,9H9.47Z"; + + // Cube/3D + public const string Cube = "M21,16.5C21,16.88 20.79,17.21 20.47,17.38L12.57,21.82C12.41,21.94 12.21,22 12,22C11.79,22 11.59,21.94 11.43,21.82L3.53,17.38C3.21,17.21 3,16.88 3,16.5V7.5C3,7.12 3.21,6.79 3.53,6.62L11.43,2.18C11.59,2.06 11.79,2 12,2C12.21,2 12.41,2.06 12.57,2.18L20.47,6.62C20.79,6.79 21,7.12 21,7.5V16.5M12,4.15L5,8.09V15.91L12,19.85L19,15.91V8.09L12,4.15Z"; + + // Dots/Pagination + public const string Dots = "M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8A2,2 0 0,1 10,6A2,2 0 0,1 12,4Z"; + + // Info/Information + public const string Info = "M13,9H11V7H13M13,17H11V11H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"; + + // Progress/Loading + public const string Progress = "M13,2.03V2.05L13,4.05C17.39,4.59 20.5,8.58 19.96,12.97C19.5,16.61 16.64,19.5 13,19.93V21.93C18.5,21.38 22.5,16.5 21.95,11C21.5,6.25 17.73,2.5 13,2.03M11,2.06C9.05,2.25 7.19,3 5.67,4.26L7.1,5.74C8.22,4.84 9.57,4.26 11,4.06V2.06M4.26,5.67C3,7.19 2.25,9.04 2.05,11H4.05C4.24,9.58 4.8,8.23 5.69,7.1L4.26,5.67M2.06,13C2.26,14.96 3.03,16.81 4.27,18.33L5.69,16.9C4.81,15.77 4.24,14.42 4.06,13H2.06M7.1,18.37L5.67,19.74C7.18,21 9.04,21.79 11,22V20C9.58,19.82 8.23,19.25 7.1,18.37Z"; + + // Radio + public const string Radio = "M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,7A5,5 0 0,0 7,12A5,5 0 0,0 12,17A5,5 0 0,0 17,12A5,5 0 0,0 12,7Z"; + + // Refresh + public const string Refresh = "M17.65,6.35C16.2,4.9 14.21,4 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20C15.73,20 18.84,17.45 19.73,14H17.65C16.83,16.33 14.61,18 12,18A6,6 0 0,1 6,12A6,6 0 0,1 12,6C13.66,6 15.14,6.69 16.22,7.78L13,11H20V4L17.65,6.35Z"; + + // Layout/Grid + public const string Layout = "M19,11H13V5H19M19,19H13V13H19M11,11H5V5H11M11,19H5V13H11M3,3V21H21V3"; + + // Scroll + public const string Scroll = "M15,20H9V12H4.16L12,4.16L19.84,12H15V20Z"; + + // Slider/Tune + public const string Slider = "M7,5H21V7H7V5M7,13V11H21V13H7M4,4.5A1.5,1.5 0 0,1 5.5,6A1.5,1.5 0 0,1 4,7.5A1.5,1.5 0 0,1 2.5,6A1.5,1.5 0 0,1 4,4.5M4,10.5A1.5,1.5 0 0,1 5.5,12A1.5,1.5 0 0,1 4,13.5A1.5,1.5 0 0,1 2.5,12A1.5,1.5 0 0,1 4,10.5M7,19V17H21V19H7M4,16.5A1.5,1.5 0 0,1 5.5,18A1.5,1.5 0 0,1 4,19.5A1.5,1.5 0 0,1 2.5,18A1.5,1.5 0 0,1 4,16.5Z"; + + // Split/SplitView + public const string Split = "M18,4H6C4.89,4 4,4.89 4,6V18A2,2 0 0,0 6,20H18A2,2 0 0,0 20,18V6C20,4.89 19.1,4 18,4M18,6V18H13V6H18Z"; + + // Tab + public const string Tab = "M21,3H3C1.89,3 1,3.89 1,5V19A2,2 0 0,0 3,21H21C22.1,21 23,20.1 23,19V5C23,3.89 22.1,3 21,3M21,19H3V5H13V9H21V19Z"; + + // Theme/Palette + public const string Theme = "M12,18V6A6,6 0 0,1 18,12A6,6 0 0,1 12,18M20,15.31L23.31,12L20,8.69V4H15.31L12,0.69L8.69,4H4V8.69L0.69,12L4,15.31V20H8.69L12,23.31L15.31,20H20V15.31Z"; + + // Toggle/Switch + public const string Toggle = "M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M17,15A3,3 0 0,1 14,12A3,3 0 0,1 17,9A3,3 0 0,1 20,12A3,3 0 0,1 17,15Z"; + + // Tooltip/Info bubble + public const string Tooltip = "M4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4A2,2 0 0,1 4,2M11,15H13V13H11V15M11,11H13V5H11V11Z"; + + // Animation/Transition + public const string Transition = "M2,5.27L3.28,4L20,20.72L18.73,22L12.73,16H7V19L3,15L7,11V14H9.73L5,9.27V14H3V5.27M21,9L17,5V8H14V10H17V13L21,9M17,17V14H15V17H17Z"; + + // Tree/Hierarchy + public const string Tree = "M15,20A1,1 0 0,0 16,19V4H8V19A1,1 0 0,0 9,20H2V22H22V20H15Z"; + + // Viewbox/Resize + public const string Viewbox = "M5,15H3V19A2,2 0 0,0 5,21H9V19H5M5,5H9V3H5A2,2 0 0,0 3,5V9H5M19,3H15V5H19V9H21V5A2,2 0 0,0 19,3M19,19H15V21H19A2,2 0 0,0 21,19V15H19"; + + // Puzzle/Embed + public const string Puzzle = "M20.5,11H19V7C19,5.89 18.1,5 17,5H13V3.5A2.5,2.5 0 0,0 10.5,1A2.5,2.5 0 0,0 8,3.5V5H4A2,2 0 0,0 2,7V10.8H3.5C5.04,10.8 6.2,11.96 6.2,13.5C6.2,15.04 5.04,16.2 3.5,16.2H2V20A2,2 0 0,0 4,22H7.8V20.5C7.8,18.96 8.96,17.8 10.5,17.8C12.04,17.8 13.2,18.96 13.2,20.5V22H17A2,2 0 0,0 19,20V16H20.5A2.5,2.5 0 0,0 23,13.5A2.5,2.5 0 0,0 20.5,11Z"; + + // Window/Application + public const string Window = "M4,4H20V20H4V4M6,8V18H18V8H6Z"; + + // Header/Title + public const string Header = "M3,4H5V10H9V4H11V18H9V12H5V18H3V4M13,8H15.31L15.63,5H17.63L17.31,8H19.31L19.63,5H21.63L21.31,8H23V10H21.1L20.9,12H23V14H20.69L20.37,17H18.37L18.69,14H16.69L16.37,17H14.37L14.69,14H13V12H14.9L15.1,10H13V8M17.1,10L16.9,12H18.9L19.1,10H17.1Z"; + + // Monitor/Screen + public const string Monitor = "M21,16H3V4H21M21,2H3C1.89,2 1,2.89 1,4V16A2,2 0 0,0 3,18H10V20H8V22H16V20H14V18H21A2,2 0 0,0 23,16V4C23,2.89 22.1,2 21,2Z"; + + // Navigation/Compass + public const string Navigation = "M12,2L4.5,20.29L5.21,21L12,18L18.79,21L19.5,20.29L12,2Z"; + + // OpenGL/3D Box (same as Cube but outline variant) + public const string Cube3D = "M21,16.5C21,16.88 20.79,17.21 20.47,17.38L12.57,21.82C12.41,21.94 12.21,22 12,22C11.79,22 11.59,21.94 11.43,21.82L3.53,17.38C3.21,17.21 3,16.88 3,16.5V7.5C3,7.12 3.21,6.79 3.53,6.62L11.43,2.18C11.59,2.06 11.79,2 12,2C12.21,2 12.41,2.06 12.57,2.18L20.47,6.62C20.79,6.79 21,7.12 21,7.5V16.5M12,4.15L6.04,7.5L12,10.85L17.96,7.5L12,4.15M5,15.91L11,19.29V12.58L5,9.21V15.91M19,15.91V9.21L13,12.58V19.29L19,15.91Z"; + + // Horizontal dots/Pager + public const string HorizontalDots = "M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z"; + + // Slider tune/adjust + public const string Tune = "M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z"; + } +} diff --git a/samples/ControlCatalog/MainView.xaml b/samples/ControlCatalog/MainView.xaml index 3a6d57801a..ea71773d13 100644 --- a/samples/ControlCatalog/MainView.xaml +++ b/samples/ControlCatalog/MainView.xaml @@ -1,312 +1,157 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + 20 + 10 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + None + BorderOnly + Full + + + + + Default + Light + Dark + + + + + Fluent + Simple + + + + + None + Transparent + Blur + AcrylicBlur + Mica + + + + + LeftToRight + RightToLeft + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - None - BorderOnly - Full - - - - - Default - Light - Dark - - - - - Fluent - Simple - - - - - None - Transparent - Blur - AcrylicBlur - Mica - - - - - LeftToRight - RightToLeft - - - - - - - - - + + diff --git a/samples/ControlCatalog/MainView.xaml.cs b/samples/ControlCatalog/MainView.xaml.cs index 82172a8ec4..5ad85da149 100644 --- a/samples/ControlCatalog/MainView.xaml.cs +++ b/samples/ControlCatalog/MainView.xaml.cs @@ -10,13 +10,80 @@ using ControlCatalog.ViewModels; namespace ControlCatalog { - public partial class MainView : UserControl + public partial class MainView : DrawerPage { private Action? _disposeTransparencySetters; public MainView() { InitializeComponent(); + + Loaded += MainView_Loaded; + Unloaded += MainView_Unloaded; + } + + private const double WideBreakpoint = 1008; + private const double NarrowBreakpoint = 640; + + private void MainView_Loaded(object? sender, Avalonia.Interactivity.RoutedEventArgs e) + { + if (DataContext == null) + return; + + SizeChanged += OnDrawerSizeChanged; + UpdateAdaptiveLayout(); + } + + private void MainView_Unloaded(object? sender, Avalonia.Interactivity.RoutedEventArgs e) + { + SizeChanged -= OnDrawerSizeChanged; + _lastAppliedMode = null; + } + + private SplitViewDisplayMode? _lastAppliedMode; + private bool _updatingLayout; + + private void OnDrawerSizeChanged(object? sender, SizeChangedEventArgs e) + { + if (e.WidthChanged) + UpdateAdaptiveLayout(); + } + + private void UpdateAdaptiveLayout() + { + if (_updatingLayout || DataContext == null) + return; + + var width = Bounds.Width; + if (width <= 0) + return; + + SplitViewDisplayMode targetMode; + if (width >= WideBreakpoint) + targetMode = SplitViewDisplayMode.Inline; + else if (width >= NarrowBreakpoint) + targetMode = SplitViewDisplayMode.CompactInline; + else + targetMode = SplitViewDisplayMode.Overlay; + + if (_lastAppliedMode == targetMode) + return; + + _updatingLayout = true; + try + { + _lastAppliedMode = targetMode; + ViewModel.DisplayMode = targetMode; + + if (targetMode == SplitViewDisplayMode.Inline) + ViewModel.IsDrawerOpened = true; + else if (targetMode == SplitViewDisplayMode.Overlay) + ViewModel.IsDrawerOpened = false; + } + finally + { + _updatingLayout = false; + } } private void Themes_SelectionChanged(object? sender, SelectionChangedEventArgs e) @@ -66,22 +133,38 @@ namespace ControlCatalog var semiTransparentBrush = new ImmutableSolidColorBrush(Colors.Gray, 0.2); _disposeTransparencySetters = (Action)topLevel.SetValue(BackgroundProperty, transparentBrush, Avalonia.Data.BindingPriority.Style)!.Dispose + - Sidebar.SetValue(BackgroundProperty, semiTransparentBrush, Avalonia.Data.BindingPriority.Style)!.Dispose + - Sidebar.SetValue(SplitView.PaneBackgroundProperty, semiTransparentBrush, Avalonia.Data.BindingPriority.Style)!.Dispose; + SetValue(BackgroundProperty, semiTransparentBrush, Avalonia.Data.BindingPriority.Style)!.Dispose + + SetValue(DrawerPage.DrawerBackgroundProperty, semiTransparentBrush, Avalonia.Data.BindingPriority.Style)!.Dispose; } } } + protected override void OnDataContextChanged(EventArgs e) + { + base.OnDataContextChanged(e); + + if (ViewModel != null) + { + ViewModel.Navigator = NavPage; + } + } + internal MainWindowViewModel ViewModel => (MainWindowViewModel)DataContext!; protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e) { base.OnAttachedToVisualTree(e); - if (TopLevel.GetTopLevel(this) is Window window) - Decorations.SelectedIndex = (int)window.WindowDecorations; + if (DataContext == null) + return; - var insets = TopLevel.GetTopLevel(this)!.InsetsManager; + UpdateAdaptiveLayout(); + + var topLevel = TopLevel.GetTopLevel(this)!; + if (topLevel is Window window) + ViewModel.SelectedDecorationIndex = (int)window.WindowDecorations; + + var insets = topLevel.InsetsManager; if (insets != null) { // In real life application these events should be unsubscribed to avoid memory leaks. @@ -111,6 +194,8 @@ namespace ControlCatalog ViewModel.IsSystemBarVisible = insets.IsSystemBarVisible ?? true; }; } + + ViewModel.SelectedPageIndex = 0; } } } diff --git a/samples/ControlCatalog/NavHeaderItem.xaml b/samples/ControlCatalog/NavHeaderItem.xaml new file mode 100644 index 0000000000..6867661ebb --- /dev/null +++ b/samples/ControlCatalog/NavHeaderItem.xaml @@ -0,0 +1,101 @@ + + + + + + #99FFFFFF + #FF1F1F1F + #FF000000 + #FF171717 + + + #99000000 + #FFE6E6E6 + #FFFFFFFF + #FFF2F2F2 + + + 36 + 1 1 1 1 #2000, 0 0 1 1 #2fff + + + + Disabled + + Test + + Test + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/ControlCatalog/Pages/AcceleratorPage.xaml b/samples/ControlCatalog/Pages/AcceleratorPage.xaml index 18072ef1c3..62fcf0d746 100644 --- a/samples/ControlCatalog/Pages/AcceleratorPage.xaml +++ b/samples/ControlCatalog/Pages/AcceleratorPage.xaml @@ -1,115 +1,116 @@ - - + - - - - - - - - - - - + + + + + + + + + + + + + + + - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - + + - + - - Accelerator Support + + Accelerator Support - - - - This is tab 1 content - - This is tab 1 content - - This is tab 1 content - + + + + This is tab 1 content + + This is tab 1 content + + This is tab 1 content + - - - This is tab 2 content - - + + + This is tab 2 content + + - - - This is tab 4 content - - - This is fab 5 content - - - + + + This is tab 4 content + + + This is fab 5 content + + + - - - + + + - - + + - - + + - - + + - - + + - - + + - + - - - - + + + + + - - + diff --git a/samples/ControlCatalog/Pages/AcceleratorPage.xaml.cs b/samples/ControlCatalog/Pages/AcceleratorPage.xaml.cs index e013d9aaac..40afacc053 100644 --- a/samples/ControlCatalog/Pages/AcceleratorPage.xaml.cs +++ b/samples/ControlCatalog/Pages/AcceleratorPage.xaml.cs @@ -2,7 +2,7 @@ using Avalonia.Controls; namespace ControlCatalog.Pages { - public partial class AcceleratorPage : UserControl + public partial class AcceleratorPage : ContentPage { public AcceleratorPage() { diff --git a/samples/ControlCatalog/Pages/AcrylicPage.xaml b/samples/ControlCatalog/Pages/AcrylicPage.xaml index 4fd0933879..4a68fbfafd 100644 --- a/samples/ControlCatalog/Pages/AcrylicPage.xaml +++ b/samples/ControlCatalog/Pages/AcrylicPage.xaml @@ -1,12 +1,13 @@ - - + - - + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - - - - + + + + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - + + + + + + + + + + - - - - - - - - - - + + + + + - + + + + + + + + + + + + + + + + - - - - - - - - - - - - + + diff --git a/samples/ControlCatalog/Pages/AcrylicPage.xaml.cs b/samples/ControlCatalog/Pages/AcrylicPage.xaml.cs index 9516655bb9..adb5b05706 100644 --- a/samples/ControlCatalog/Pages/AcrylicPage.xaml.cs +++ b/samples/ControlCatalog/Pages/AcrylicPage.xaml.cs @@ -2,7 +2,7 @@ namespace ControlCatalog.Pages { - public partial class AcrylicPage : UserControl + public partial class AcrylicPage : ContentPage { public AcrylicPage() { diff --git a/samples/ControlCatalog/Pages/AdornerLayerPage.xaml b/samples/ControlCatalog/Pages/AdornerLayerPage.xaml index e9a245a8e1..35907c7ef8 100644 --- a/samples/ControlCatalog/Pages/AdornerLayerPage.xaml +++ b/samples/ControlCatalog/Pages/AdornerLayerPage.xaml @@ -1,52 +1,52 @@ - + + + Rotation + + - - - Rotation - - + + - + + + + + + + + + + + + + + - - - - + + + + diff --git a/samples/ControlCatalog/Pages/AdornerLayerPage.xaml.cs b/samples/ControlCatalog/Pages/AdornerLayerPage.xaml.cs index 526b8a492b..5ee8d44479 100644 --- a/samples/ControlCatalog/Pages/AdornerLayerPage.xaml.cs +++ b/samples/ControlCatalog/Pages/AdornerLayerPage.xaml.cs @@ -4,7 +4,7 @@ using Avalonia.Interactivity; namespace ControlCatalog.Pages { - public partial class AdornerLayerPage : UserControl + public partial class AdornerLayerPage : ContentPage { private Control? _adorner; diff --git a/samples/ControlCatalog/Pages/AutoCompleteBoxPage.xaml b/samples/ControlCatalog/Pages/AutoCompleteBoxPage.xaml index 35e917f996..4edb00b7c3 100644 --- a/samples/ControlCatalog/Pages/AutoCompleteBoxPage.xaml +++ b/samples/ControlCatalog/Pages/AutoCompleteBoxPage.xaml @@ -1,79 +1,83 @@ - - - A control into which the user can input text + + + A control into which the user can input text - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/samples/ControlCatalog/Pages/AutoCompleteBoxPage.xaml.cs b/samples/ControlCatalog/Pages/AutoCompleteBoxPage.xaml.cs index 47b6eb7f4a..295aa9d139 100644 --- a/samples/ControlCatalog/Pages/AutoCompleteBoxPage.xaml.cs +++ b/samples/ControlCatalog/Pages/AutoCompleteBoxPage.xaml.cs @@ -11,7 +11,7 @@ using ControlCatalog.Models; namespace ControlCatalog.Pages { - public partial class AutoCompleteBoxPage : UserControl + public partial class AutoCompleteBoxPage : ContentPage { private static StateData[] BuildAllStates() { diff --git a/samples/ControlCatalog/Pages/BitmapCachePage.axaml b/samples/ControlCatalog/Pages/BitmapCachePage.axaml index 5902be8e51..4298f29e8f 100644 --- a/samples/ControlCatalog/Pages/BitmapCachePage.axaml +++ b/samples/ControlCatalog/Pages/BitmapCachePage.axaml @@ -1,45 +1,49 @@ - + - - - - - - - Render at scale - - Scale - - Enable clear type + + + + + + + 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. - - - + 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 index 92b3cbec68..be7cf7a7ea 100644 --- a/samples/ControlCatalog/Pages/BitmapCachePage.axaml.cs +++ b/samples/ControlCatalog/Pages/BitmapCachePage.axaml.cs @@ -4,10 +4,10 @@ using Avalonia.Markup.Xaml; namespace ControlCatalog.Pages; -public partial class BitmapCachePage : UserControl +public partial class BitmapCachePage : ContentPage { public BitmapCachePage() { InitializeComponent(); } -} \ No newline at end of file +} diff --git a/samples/ControlCatalog/Pages/BorderPage.xaml b/samples/ControlCatalog/Pages/BorderPage.xaml index c811ddaa22..297e3fcfb8 100644 --- a/samples/ControlCatalog/Pages/BorderPage.xaml +++ b/samples/ControlCatalog/Pages/BorderPage.xaml @@ -1,61 +1,65 @@ - - - - - - A control which decorates a child with a border and background + + + + + + A control which decorates a child with a border and background - - - Border - - - Background And CenterBorder - - - Background And InnerBorderEdge - - - Background And OuterBorderEdge - - - Rounded Corners - - - Rounded Corners - - - - - + + + Border + + + Background And CenterBorder + + + Background And InnerBorderEdge + + + Background And OuterBorderEdge + + + Rounded Corners + + + Rounded Corners + + + + + + - - + + diff --git a/samples/ControlCatalog/Pages/BorderPage.xaml.cs b/samples/ControlCatalog/Pages/BorderPage.xaml.cs index 944df86f8c..71aebf24ff 100644 --- a/samples/ControlCatalog/Pages/BorderPage.xaml.cs +++ b/samples/ControlCatalog/Pages/BorderPage.xaml.cs @@ -2,7 +2,7 @@ using Avalonia.Controls; namespace ControlCatalog.Pages { - public partial class BorderPage : UserControl + public partial class BorderPage : ContentPage { public BorderPage() { diff --git a/samples/ControlCatalog/Pages/ButtonSpinnerPage.xaml b/samples/ControlCatalog/Pages/ButtonSpinnerPage.xaml index 900e304559..c21a772c2a 100644 --- a/samples/ControlCatalog/Pages/ButtonSpinnerPage.xaml +++ b/samples/ControlCatalog/Pages/ButtonSpinnerPage.xaml @@ -1,6 +1,7 @@ - @@ -30,4 +31,4 @@ - + diff --git a/samples/ControlCatalog/Pages/ButtonSpinnerPage.xaml.cs b/samples/ControlCatalog/Pages/ButtonSpinnerPage.xaml.cs index fad4b466fe..28f4b20084 100644 --- a/samples/ControlCatalog/Pages/ButtonSpinnerPage.xaml.cs +++ b/samples/ControlCatalog/Pages/ButtonSpinnerPage.xaml.cs @@ -3,7 +3,7 @@ using Avalonia.Controls; namespace ControlCatalog.Pages { - public partial class ButtonSpinnerPage : UserControl + public partial class ButtonSpinnerPage : ContentPage { public ButtonSpinnerPage() { diff --git a/samples/ControlCatalog/Pages/ButtonsPage.xaml b/samples/ControlCatalog/Pages/ButtonsPage.xaml index f13581aa18..695ae28515 100644 --- a/samples/ControlCatalog/Pages/ButtonsPage.xaml +++ b/samples/ControlCatalog/Pages/ButtonsPage.xaml @@ -1,8 +1,9 @@ - - + @@ -16,9 +17,9 @@ - + - + - + @@ -288,4 +289,4 @@ - + diff --git a/samples/ControlCatalog/Pages/ButtonsPage.xaml.cs b/samples/ControlCatalog/Pages/ButtonsPage.xaml.cs index 6dcee1ab7d..611fc76241 100644 --- a/samples/ControlCatalog/Pages/ButtonsPage.xaml.cs +++ b/samples/ControlCatalog/Pages/ButtonsPage.xaml.cs @@ -3,7 +3,7 @@ using Avalonia.Interactivity; namespace ControlCatalog.Pages { - public partial class ButtonsPage : UserControl + public partial class ButtonsPage : ContentPage { private int repeatButtonClickCount = 0; diff --git a/samples/ControlCatalog/Pages/CalendarDatePickerPage.xaml b/samples/ControlCatalog/Pages/CalendarDatePickerPage.xaml index 8734758d26..769dbc0dac 100644 --- a/samples/ControlCatalog/Pages/CalendarDatePickerPage.xaml +++ b/samples/ControlCatalog/Pages/CalendarDatePickerPage.xaml @@ -1,7 +1,8 @@ - A control for selecting dates with a calendar drop-down @@ -52,4 +53,4 @@ - + diff --git a/samples/ControlCatalog/Pages/CalendarDatePickerPage.xaml.cs b/samples/ControlCatalog/Pages/CalendarDatePickerPage.xaml.cs index 73e1fe4bba..0e4fcbd986 100644 --- a/samples/ControlCatalog/Pages/CalendarDatePickerPage.xaml.cs +++ b/samples/ControlCatalog/Pages/CalendarDatePickerPage.xaml.cs @@ -3,7 +3,7 @@ using Avalonia.Controls; namespace ControlCatalog.Pages { - public partial class CalendarDatePickerPage : UserControl + public partial class CalendarDatePickerPage : ContentPage { public CalendarDatePickerPage() { diff --git a/samples/ControlCatalog/Pages/CalendarPage.xaml b/samples/ControlCatalog/Pages/CalendarPage.xaml index e142c4da72..99727e9124 100644 --- a/samples/ControlCatalog/Pages/CalendarPage.xaml +++ b/samples/ControlCatalog/Pages/CalendarPage.xaml @@ -1,5 +1,6 @@ - A calendar control for selecting dates @@ -49,4 +50,4 @@ - + diff --git a/samples/ControlCatalog/Pages/CalendarPage.xaml.cs b/samples/ControlCatalog/Pages/CalendarPage.xaml.cs index 56f511be55..d9118326f9 100644 --- a/samples/ControlCatalog/Pages/CalendarPage.xaml.cs +++ b/samples/ControlCatalog/Pages/CalendarPage.xaml.cs @@ -3,7 +3,7 @@ using Avalonia.Controls; namespace ControlCatalog.Pages { - public partial class CalendarPage : UserControl + public partial class CalendarPage : ContentPage { public CalendarPage() { diff --git a/samples/ControlCatalog/Pages/CanvasPage.xaml b/samples/ControlCatalog/Pages/CanvasPage.xaml index 416164f391..a9e342181d 100644 --- a/samples/ControlCatalog/Pages/CanvasPage.xaml +++ b/samples/ControlCatalog/Pages/CanvasPage.xaml @@ -1,5 +1,6 @@ - A panel which lays out its children by explicit coordinates @@ -34,4 +35,4 @@ - + diff --git a/samples/ControlCatalog/Pages/CanvasPage.xaml.cs b/samples/ControlCatalog/Pages/CanvasPage.xaml.cs index e52df597a9..b94aabca94 100644 --- a/samples/ControlCatalog/Pages/CanvasPage.xaml.cs +++ b/samples/ControlCatalog/Pages/CanvasPage.xaml.cs @@ -2,7 +2,7 @@ using Avalonia.Controls; namespace ControlCatalog.Pages { - public partial class CanvasPage : UserControl + public partial class CanvasPage : ContentPage { public CanvasPage() { diff --git a/samples/ControlCatalog/Pages/CarouselDemoPage.xaml b/samples/ControlCatalog/Pages/CarouselDemoPage.xaml index df4317fcad..792441ddb4 100644 --- a/samples/ControlCatalog/Pages/CarouselDemoPage.xaml +++ b/samples/ControlCatalog/Pages/CarouselDemoPage.xaml @@ -1,11 +1,14 @@ - - - - - - - + + + + + + + + diff --git a/samples/ControlCatalog/Pages/CarouselDemoPage.xaml.cs b/samples/ControlCatalog/Pages/CarouselDemoPage.xaml.cs index 36c9961658..0d59d296f6 100644 --- a/samples/ControlCatalog/Pages/CarouselDemoPage.xaml.cs +++ b/samples/ControlCatalog/Pages/CarouselDemoPage.xaml.cs @@ -4,7 +4,7 @@ using Avalonia.Interactivity; namespace ControlCatalog.Pages { - public partial class CarouselDemoPage : UserControl + public partial class CarouselDemoPage : ContentPage { private static readonly (string Group, string Title, string Description, Func Factory)[] Demos = { diff --git a/samples/ControlCatalog/Pages/CarouselPage.xaml b/samples/ControlCatalog/Pages/CarouselPage.xaml index c6e20fec5b..bdb40b9038 100644 --- a/samples/ControlCatalog/Pages/CarouselPage.xaml +++ b/samples/ControlCatalog/Pages/CarouselPage.xaml @@ -1,5 +1,6 @@ - A swipeable items control that can reveal adjacent pages with ViewportFraction. @@ -115,4 +116,4 @@ - + diff --git a/samples/ControlCatalog/Pages/CarouselPage.xaml.cs b/samples/ControlCatalog/Pages/CarouselPage.xaml.cs index 0a0c973b90..c4a6ffa12f 100644 --- a/samples/ControlCatalog/Pages/CarouselPage.xaml.cs +++ b/samples/ControlCatalog/Pages/CarouselPage.xaml.cs @@ -7,7 +7,7 @@ using ControlCatalog.Pages.Transitions; namespace ControlCatalog.Pages { - public partial class CarouselPage : UserControl + public partial class CarouselPage : ContentPage { public CarouselPage() { diff --git a/samples/ControlCatalog/Pages/CheckBoxPage.xaml b/samples/ControlCatalog/Pages/CheckBoxPage.xaml index 2f60fc5dae..4f9c59448b 100644 --- a/samples/ControlCatalog/Pages/CheckBoxPage.xaml +++ b/samples/ControlCatalog/Pages/CheckBoxPage.xaml @@ -1,5 +1,6 @@ - A check box control @@ -25,4 +26,4 @@ - + diff --git a/samples/ControlCatalog/Pages/CheckBoxPage.xaml.cs b/samples/ControlCatalog/Pages/CheckBoxPage.xaml.cs index 95ff21ef6d..b63d7084d6 100644 --- a/samples/ControlCatalog/Pages/CheckBoxPage.xaml.cs +++ b/samples/ControlCatalog/Pages/CheckBoxPage.xaml.cs @@ -2,7 +2,7 @@ using Avalonia.Controls; namespace ControlCatalog.Pages { - public partial class CheckBoxPage : UserControl + public partial class CheckBoxPage : ContentPage { public CheckBoxPage() { diff --git a/samples/ControlCatalog/Pages/ClipboardPage.xaml b/samples/ControlCatalog/Pages/ClipboardPage.xaml index 864a520aca..86e99b9305 100644 --- a/samples/ControlCatalog/Pages/ClipboardPage.xaml +++ b/samples/ControlCatalog/Pages/ClipboardPage.xaml @@ -1,5 +1,6 @@ - Example of ClipboardPage capabilities @@ -27,4 +28,4 @@ /> - + diff --git a/samples/ControlCatalog/Pages/ClipboardPage.xaml.cs b/samples/ControlCatalog/Pages/ClipboardPage.xaml.cs index 65f58d0444..0bc5447313 100644 --- a/samples/ControlCatalog/Pages/ClipboardPage.xaml.cs +++ b/samples/ControlCatalog/Pages/ClipboardPage.xaml.cs @@ -15,7 +15,7 @@ using Avalonia.Threading; namespace ControlCatalog.Pages { - public partial class ClipboardPage : UserControl + public partial class ClipboardPage : ContentPage { private readonly DataFormat _customBinaryDataFormat = DataFormat.CreateBytesApplicationFormat("controlcatalog-binary-data"); diff --git a/samples/ControlCatalog/Pages/ColorPickerPage.xaml b/samples/ControlCatalog/Pages/ColorPickerPage.xaml index fb397085e7..f0b303e0d4 100644 --- a/samples/ControlCatalog/Pages/ColorPickerPage.xaml +++ b/samples/ControlCatalog/Pages/ColorPickerPage.xaml @@ -1,4 +1,4 @@ - - + - + - + diff --git a/samples/ControlCatalog/Pages/ColorPickerPage.xaml.cs b/samples/ControlCatalog/Pages/ColorPickerPage.xaml.cs index 4d2d236ed3..cc225b576d 100644 --- a/samples/ControlCatalog/Pages/ColorPickerPage.xaml.cs +++ b/samples/ControlCatalog/Pages/ColorPickerPage.xaml.cs @@ -5,7 +5,7 @@ using Avalonia.Media; namespace ControlCatalog.Pages { - public partial class ColorPickerPage : UserControl + public partial class ColorPickerPage : ContentPage { public ColorPickerPage() { diff --git a/samples/ControlCatalog/Pages/ComboBoxPage.xaml b/samples/ControlCatalog/Pages/ComboBoxPage.xaml index 449c10f000..149fd73d0a 100644 --- a/samples/ControlCatalog/Pages/ComboBoxPage.xaml +++ b/samples/ControlCatalog/Pages/ComboBoxPage.xaml @@ -1,4 +1,4 @@ - - + diff --git a/samples/ControlCatalog/Pages/ComboBoxPage.xaml.cs b/samples/ControlCatalog/Pages/ComboBoxPage.xaml.cs index 301b052cb8..720aae9ef5 100644 --- a/samples/ControlCatalog/Pages/ComboBoxPage.xaml.cs +++ b/samples/ControlCatalog/Pages/ComboBoxPage.xaml.cs @@ -4,7 +4,7 @@ using ControlCatalog.ViewModels; namespace ControlCatalog.Pages { - public partial class ComboBoxPage : UserControl + public partial class ComboBoxPage : ContentPage { public ComboBoxPage() { diff --git a/samples/ControlCatalog/Pages/CommandBar/CommandBarCustomizationPage.xaml b/samples/ControlCatalog/Pages/CommandBar/CommandBarCustomizationPage.xaml index 3ce911d9f8..16765b4921 100644 --- a/samples/ControlCatalog/Pages/CommandBar/CommandBarCustomizationPage.xaml +++ b/samples/ControlCatalog/Pages/CommandBar/CommandBarCustomizationPage.xaml @@ -29,10 +29,19 @@ HorizontalAlignment="Stretch" SelectionChanged="OnBgPresetChanged"> - - - - + + + + + + + + + + + + + @@ -41,8 +50,15 @@ HorizontalAlignment="Stretch" SelectionChanged="OnFgChanged"> - - + + + + + + + + + diff --git a/samples/ControlCatalog/Pages/CommandBar/CommandBarCustomizationPage.xaml.cs b/samples/ControlCatalog/Pages/CommandBar/CommandBarCustomizationPage.xaml.cs index 52c98757f0..2445bde045 100644 --- a/samples/ControlCatalog/Pages/CommandBar/CommandBarCustomizationPage.xaml.cs +++ b/samples/ControlCatalog/Pages/CommandBar/CommandBarCustomizationPage.xaml.cs @@ -14,16 +14,16 @@ namespace ControlCatalog.Pages { if (LiveBar == null) return; - - switch (BgPresetCombo.SelectedIndex) + + if (BgPresetCombo.SelectedItem is not ComboBoxItem { Tag: string preset }) { - case 1: - LiveBar.Background = new SolidColorBrush(Color.Parse("#0078D4")); - break; - case 2: - LiveBar.Background = new SolidColorBrush(Color.Parse("#1C1C1E")); - break; - case 3: + LiveBar.ClearValue(BackgroundProperty); + return; + } + + switch (preset) + { + case "Gradient": LiveBar.Background = new LinearGradientBrush { StartPoint = new Avalonia.RelativePoint(0, 0, Avalonia.RelativeUnit.Relative), @@ -35,11 +35,11 @@ namespace ControlCatalog.Pages } }; break; - case 4: + case "Transparent": LiveBar.Background = Brushes.Transparent; break; default: - LiveBar.ClearValue(BackgroundProperty); + LiveBar.Background = new SolidColorBrush(Color.Parse(preset)); break; } } @@ -48,19 +48,14 @@ namespace ControlCatalog.Pages { if (LiveBar == null) return; - - switch (FgCombo.SelectedIndex) + + if (FgCombo.SelectedItem is ComboBoxItem { Tag: string color }) { - case 1: - LiveBar.Foreground = Brushes.White; - break; - case 2: - LiveBar.Foreground = Brushes.Black; - break; - default: - LiveBar.ClearValue(ForegroundProperty); - break; + LiveBar.Foreground = new SolidColorBrush(Color.Parse(color)); + return; } + + LiveBar.ClearValue(ForegroundProperty); } private void OnRadiusChanged(object? sender, Avalonia.Controls.Primitives.RangeBaseValueChangedEventArgs e) diff --git a/samples/ControlCatalog/Pages/CommandBarPage.xaml b/samples/ControlCatalog/Pages/CommandBarPage.xaml index 6cf280ea95..3c648ea012 100644 --- a/samples/ControlCatalog/Pages/CommandBarPage.xaml +++ b/samples/ControlCatalog/Pages/CommandBarPage.xaml @@ -1,8 +1,11 @@ - - + - - - + + + + + diff --git a/samples/ControlCatalog/Pages/CommandBarPage.xaml.cs b/samples/ControlCatalog/Pages/CommandBarPage.xaml.cs index b759c7b605..0b81c698d2 100644 --- a/samples/ControlCatalog/Pages/CommandBarPage.xaml.cs +++ b/samples/ControlCatalog/Pages/CommandBarPage.xaml.cs @@ -7,7 +7,7 @@ using Avalonia.Media; namespace ControlCatalog.Pages { - public partial class CommandBarPage : UserControl + public partial class CommandBarPage : ContentPage { private static readonly (string Group, string Title, string Description, Func Factory)[] Demos = { diff --git a/samples/ControlCatalog/Pages/CompositionPage.axaml b/samples/ControlCatalog/Pages/CompositionPage.axaml index 4d9bb41781..a3e9b047a8 100644 --- a/samples/ControlCatalog/Pages/CompositionPage.axaml +++ b/samples/ControlCatalog/Pages/CompositionPage.axaml @@ -1,62 +1,61 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - Resize me - - - + + + + + + + + + + + + + + + + + + + + + + + + + Resize me + + + + + + + + + + + + + + + + + + Precise dirty rects - - - - - - - - - - - - - - Precise dirty rects - - - - - - + + + + diff --git a/samples/ControlCatalog/Pages/CompositionPage.axaml.cs b/samples/ControlCatalog/Pages/CompositionPage.axaml.cs index 287bde0be8..8f5d75f4ce 100644 --- a/samples/ControlCatalog/Pages/CompositionPage.axaml.cs +++ b/samples/ControlCatalog/Pages/CompositionPage.axaml.cs @@ -15,7 +15,7 @@ using Math = System.Math; namespace ControlCatalog.Pages; -public partial class CompositionPage : UserControl +public partial class CompositionPage : TabbedPage { private ImplicitAnimationCollection? _implicitAnimations; private CompositionCustomVisual? _customVisual; diff --git a/samples/ControlCatalog/Pages/ConnectedAnimationDemoPage.xaml b/samples/ControlCatalog/Pages/ConnectedAnimationDemoPage.xaml index bf37b4cc4f..ca4a85af8d 100644 --- a/samples/ControlCatalog/Pages/ConnectedAnimationDemoPage.xaml +++ b/samples/ControlCatalog/Pages/ConnectedAnimationDemoPage.xaml @@ -1,6 +1,8 @@ - + - + + diff --git a/samples/ControlCatalog/Pages/ConnectedAnimationDemoPage.xaml.cs b/samples/ControlCatalog/Pages/ConnectedAnimationDemoPage.xaml.cs index 0c13bb360e..5d666730ae 100644 --- a/samples/ControlCatalog/Pages/ConnectedAnimationDemoPage.xaml.cs +++ b/samples/ControlCatalog/Pages/ConnectedAnimationDemoPage.xaml.cs @@ -7,7 +7,7 @@ using Avalonia.Media; namespace ControlCatalog.Pages { - public partial class ConnectedAnimationDemoPage : UserControl + public partial class ConnectedAnimationDemoPage : ContentPage { private static readonly (string Group, string Title, string Description, Func Factory)[] Demos = []; diff --git a/samples/ControlCatalog/Pages/ContainerQueryPage.xaml b/samples/ControlCatalog/Pages/ContainerQueryPage.xaml index e6b0558a04..96f7a87586 100644 --- a/samples/ControlCatalog/Pages/ContainerQueryPage.xaml +++ b/samples/ControlCatalog/Pages/ContainerQueryPage.xaml @@ -1,9 +1,10 @@ - @@ -107,4 +108,4 @@ - + diff --git a/samples/ControlCatalog/Pages/ContainerQueryPage.xaml.cs b/samples/ControlCatalog/Pages/ContainerQueryPage.xaml.cs index acd67c6629..b43723005e 100644 --- a/samples/ControlCatalog/Pages/ContainerQueryPage.xaml.cs +++ b/samples/ControlCatalog/Pages/ContainerQueryPage.xaml.cs @@ -2,7 +2,7 @@ namespace ControlCatalog.Pages { - public partial class ContainerQueryPage : UserControl + public partial class ContainerQueryPage : ContentPage { public ContainerQueryPage() { diff --git a/samples/ControlCatalog/Pages/ContentDemoPage.xaml b/samples/ControlCatalog/Pages/ContentDemoPage.xaml index d8f2155a1b..bcf0ca67ef 100644 --- a/samples/ControlCatalog/Pages/ContentDemoPage.xaml +++ b/samples/ControlCatalog/Pages/ContentDemoPage.xaml @@ -1,11 +1,14 @@ - - - - - - - + + + + + + + + diff --git a/samples/ControlCatalog/Pages/ContentDemoPage.xaml.cs b/samples/ControlCatalog/Pages/ContentDemoPage.xaml.cs index e667cfc0ff..b47dde07c1 100644 --- a/samples/ControlCatalog/Pages/ContentDemoPage.xaml.cs +++ b/samples/ControlCatalog/Pages/ContentDemoPage.xaml.cs @@ -7,7 +7,7 @@ using Avalonia.Media; namespace ControlCatalog.Pages { - public partial class ContentDemoPage : UserControl + public partial class ContentDemoPage : ContentPage { private static readonly (string Group, string Title, string Description, Func Factory)[] Demos = { diff --git a/samples/ControlCatalog/Pages/ContextFlyoutPage.xaml b/samples/ControlCatalog/Pages/ContextFlyoutPage.xaml index c23393e63c..fa52c05bfa 100644 --- a/samples/ControlCatalog/Pages/ContextFlyoutPage.xaml +++ b/samples/ControlCatalog/Pages/ContextFlyoutPage.xaml @@ -1,18 +1,19 @@ - - + - + @@ -156,4 +157,4 @@ - + diff --git a/samples/ControlCatalog/Pages/ContextFlyoutPage.xaml.cs b/samples/ControlCatalog/Pages/ContextFlyoutPage.xaml.cs index bef2c8212d..f25b9341c3 100644 --- a/samples/ControlCatalog/Pages/ContextFlyoutPage.xaml.cs +++ b/samples/ControlCatalog/Pages/ContextFlyoutPage.xaml.cs @@ -7,7 +7,7 @@ using ControlCatalog.ViewModels; namespace ControlCatalog.Pages { - public partial class ContextFlyoutPage : UserControl + public partial class ContextFlyoutPage : ContentPage { public ContextFlyoutPage() { diff --git a/samples/ControlCatalog/Pages/ContextMenuPage.xaml b/samples/ControlCatalog/Pages/ContextMenuPage.xaml index 0e7c7b9451..4d1d02aed8 100644 --- a/samples/ControlCatalog/Pages/ContextMenuPage.xaml +++ b/samples/ControlCatalog/Pages/ContextMenuPage.xaml @@ -1,7 +1,8 @@ - A right click menu that can be applied to any control. @@ -86,4 +87,4 @@ - + diff --git a/samples/ControlCatalog/Pages/ContextMenuPage.xaml.cs b/samples/ControlCatalog/Pages/ContextMenuPage.xaml.cs index a71398181c..86ce807127 100644 --- a/samples/ControlCatalog/Pages/ContextMenuPage.xaml.cs +++ b/samples/ControlCatalog/Pages/ContextMenuPage.xaml.cs @@ -6,7 +6,7 @@ using ControlCatalog.ViewModels; namespace ControlCatalog.Pages { - public partial class ContextMenuPage : UserControl + public partial class ContextMenuPage : ContentPage { public ContextMenuPage() { diff --git a/samples/ControlCatalog/Pages/CursorPage.xaml b/samples/ControlCatalog/Pages/CursorPage.xaml index 66f2b8b2e3..ae20193c97 100644 --- a/samples/ControlCatalog/Pages/CursorPage.xaml +++ b/samples/ControlCatalog/Pages/CursorPage.xaml @@ -1,6 +1,7 @@ - @@ -27,4 +28,4 @@ - + diff --git a/samples/ControlCatalog/Pages/CursorPage.xaml.cs b/samples/ControlCatalog/Pages/CursorPage.xaml.cs index f9119175e2..88699ac6f2 100644 --- a/samples/ControlCatalog/Pages/CursorPage.xaml.cs +++ b/samples/ControlCatalog/Pages/CursorPage.xaml.cs @@ -3,7 +3,7 @@ using ControlCatalog.ViewModels; namespace ControlCatalog.Pages { - public partial class CursorPage : UserControl + public partial class CursorPage : ContentPage { public CursorPage() { diff --git a/samples/ControlCatalog/Pages/CustomDrawing.xaml b/samples/ControlCatalog/Pages/CustomDrawing.xaml index 04b7fcfea5..f1cb2dab14 100644 --- a/samples/ControlCatalog/Pages/CustomDrawing.xaml +++ b/samples/ControlCatalog/Pages/CustomDrawing.xaml @@ -1,15 +1,16 @@ - - + - + @@ -104,4 +105,4 @@ - + diff --git a/samples/ControlCatalog/Pages/CustomDrawing.xaml.cs b/samples/ControlCatalog/Pages/CustomDrawing.xaml.cs index d3fedb76be..0eae942075 100644 --- a/samples/ControlCatalog/Pages/CustomDrawing.xaml.cs +++ b/samples/ControlCatalog/Pages/CustomDrawing.xaml.cs @@ -4,7 +4,7 @@ using Avalonia.Interactivity; namespace ControlCatalog.Pages { - public partial class CustomDrawing : UserControl + public partial class CustomDrawing : ContentPage { public CustomDrawing() { diff --git a/samples/ControlCatalog/Pages/DataGridPage.xaml b/samples/ControlCatalog/Pages/DataGridPage.xaml index 3187e13f9f..04adf56700 100644 --- a/samples/ControlCatalog/Pages/DataGridPage.xaml +++ b/samples/ControlCatalog/Pages/DataGridPage.xaml @@ -1,5 +1,6 @@ - @@ -8,4 +9,4 @@ Click="OnLinkClicked" /> - + diff --git a/samples/ControlCatalog/Pages/DataGridPage.xaml.cs b/samples/ControlCatalog/Pages/DataGridPage.xaml.cs index 5fa4ec8b0e..1154506e2e 100644 --- a/samples/ControlCatalog/Pages/DataGridPage.xaml.cs +++ b/samples/ControlCatalog/Pages/DataGridPage.xaml.cs @@ -4,7 +4,7 @@ using Avalonia.Interactivity; namespace ControlCatalog.Pages; -public partial class DataGridPage : UserControl +public partial class DataGridPage : ContentPage { public DataGridPage() { diff --git a/samples/ControlCatalog/Pages/DataValidationPage.axaml b/samples/ControlCatalog/Pages/DataValidationPage.axaml index d46562addd..de4e398725 100644 --- a/samples/ControlCatalog/Pages/DataValidationPage.axaml +++ b/samples/ControlCatalog/Pages/DataValidationPage.axaml @@ -1,14 +1,15 @@ - - + - + - + diff --git a/samples/ControlCatalog/Pages/DataValidationPage.axaml.cs b/samples/ControlCatalog/Pages/DataValidationPage.axaml.cs index e38f85fec4..26bb75ca79 100644 --- a/samples/ControlCatalog/Pages/DataValidationPage.axaml.cs +++ b/samples/ControlCatalog/Pages/DataValidationPage.axaml.cs @@ -4,7 +4,7 @@ using Avalonia.Markup.Xaml; namespace ControlCatalog.Pages; -public partial class DataValidationPage : UserControl +public partial class DataValidationPage : ContentPage { public DataValidationPage() { diff --git a/samples/ControlCatalog/Pages/DateTimePickerPage.xaml b/samples/ControlCatalog/Pages/DateTimePickerPage.xaml index 7a1bfaa824..2183204c05 100644 --- a/samples/ControlCatalog/Pages/DateTimePickerPage.xaml +++ b/samples/ControlCatalog/Pages/DateTimePickerPage.xaml @@ -1,7 +1,8 @@ - @@ -207,4 +208,4 @@ - + diff --git a/samples/ControlCatalog/Pages/DateTimePickerPage.xaml.cs b/samples/ControlCatalog/Pages/DateTimePickerPage.xaml.cs index b5968a6b2a..99250d5fb0 100644 --- a/samples/ControlCatalog/Pages/DateTimePickerPage.xaml.cs +++ b/samples/ControlCatalog/Pages/DateTimePickerPage.xaml.cs @@ -2,7 +2,7 @@ namespace ControlCatalog.Pages { - public partial class DateTimePickerPage : UserControl + public partial class DateTimePickerPage : ContentPage { public DateTimePickerPage() { diff --git a/samples/ControlCatalog/Pages/DialogsPage.xaml b/samples/ControlCatalog/Pages/DialogsPage.xaml index e6b3568909..296b632b91 100644 --- a/samples/ControlCatalog/Pages/DialogsPage.xaml +++ b/samples/ControlCatalog/Pages/DialogsPage.xaml @@ -1,6 +1,7 @@ - - + diff --git a/samples/ControlCatalog/Pages/DialogsPage.xaml.cs b/samples/ControlCatalog/Pages/DialogsPage.xaml.cs index adcf844552..616e3d4f62 100644 --- a/samples/ControlCatalog/Pages/DialogsPage.xaml.cs +++ b/samples/ControlCatalog/Pages/DialogsPage.xaml.cs @@ -12,7 +12,7 @@ using Avalonia.Platform.Storage; namespace ControlCatalog.Pages { - public partial class DialogsPage : UserControl + public partial class DialogsPage : ContentPage { public DialogsPage() { diff --git a/samples/ControlCatalog/Pages/DragAndDropPage.xaml b/samples/ControlCatalog/Pages/DragAndDropPage.xaml index 7982ddc1d0..2ca9ed27a0 100644 --- a/samples/ControlCatalog/Pages/DragAndDropPage.xaml +++ b/samples/ControlCatalog/Pages/DragAndDropPage.xaml @@ -1,15 +1,16 @@ - - + - + Example of Drag+Drop capabilities @@ -57,4 +58,4 @@ - + diff --git a/samples/ControlCatalog/Pages/DragAndDropPage.xaml.cs b/samples/ControlCatalog/Pages/DragAndDropPage.xaml.cs index fe2b306477..b2a91da381 100644 --- a/samples/ControlCatalog/Pages/DragAndDropPage.xaml.cs +++ b/samples/ControlCatalog/Pages/DragAndDropPage.xaml.cs @@ -13,7 +13,7 @@ using Avalonia.Platform.Storage; namespace ControlCatalog.Pages { - public partial class DragAndDropPage : UserControl + public partial class DragAndDropPage : ContentPage { private readonly DataFormat _customFormat = DataFormat.CreateStringApplicationFormat("xxx-avalonia-controlcatalog-custom"); diff --git a/samples/ControlCatalog/Pages/DrawerDemoPage.xaml b/samples/ControlCatalog/Pages/DrawerDemoPage.xaml index 671a9a8487..f1edd0bc63 100644 --- a/samples/ControlCatalog/Pages/DrawerDemoPage.xaml +++ b/samples/ControlCatalog/Pages/DrawerDemoPage.xaml @@ -1,11 +1,14 @@ - - - - - - - + + + + + + + + diff --git a/samples/ControlCatalog/Pages/DrawerDemoPage.xaml.cs b/samples/ControlCatalog/Pages/DrawerDemoPage.xaml.cs index cd8aa9cd5b..27eb93ff03 100644 --- a/samples/ControlCatalog/Pages/DrawerDemoPage.xaml.cs +++ b/samples/ControlCatalog/Pages/DrawerDemoPage.xaml.cs @@ -4,7 +4,7 @@ using Avalonia.Interactivity; namespace ControlCatalog.Pages { - public partial class DrawerDemoPage : UserControl + public partial class DrawerDemoPage : ContentPage { private static readonly (string Group, string Title, string Description, Func Factory)[] Demos = { diff --git a/samples/ControlCatalog/Pages/ExpanderPage.xaml b/samples/ControlCatalog/Pages/ExpanderPage.xaml index b5a2e6cdd0..322da30a61 100644 --- a/samples/ControlCatalog/Pages/ExpanderPage.xaml +++ b/samples/ControlCatalog/Pages/ExpanderPage.xaml @@ -1,7 +1,8 @@ - Expands to show nested content @@ -72,4 +73,4 @@ - + diff --git a/samples/ControlCatalog/Pages/ExpanderPage.xaml.cs b/samples/ControlCatalog/Pages/ExpanderPage.xaml.cs index 05c5cbee53..65b7b7e30b 100644 --- a/samples/ControlCatalog/Pages/ExpanderPage.xaml.cs +++ b/samples/ControlCatalog/Pages/ExpanderPage.xaml.cs @@ -3,7 +3,7 @@ using ControlCatalog.ViewModels; namespace ControlCatalog.Pages { - public partial class ExpanderPage : UserControl + public partial class ExpanderPage : ContentPage { public ExpanderPage() { diff --git a/samples/ControlCatalog/Pages/FlyoutsPage.axaml b/samples/ControlCatalog/Pages/FlyoutsPage.axaml index 64a005c987..840557bb9f 100644 --- a/samples/ControlCatalog/Pages/FlyoutsPage.axaml +++ b/samples/ControlCatalog/Pages/FlyoutsPage.axaml @@ -1,11 +1,12 @@ - - + @@ -25,7 +26,7 @@ - + @@ -282,4 +283,4 @@ - + diff --git a/samples/ControlCatalog/Pages/FlyoutsPage.axaml.cs b/samples/ControlCatalog/Pages/FlyoutsPage.axaml.cs index 91e92bc227..d6f54df074 100644 --- a/samples/ControlCatalog/Pages/FlyoutsPage.axaml.cs +++ b/samples/ControlCatalog/Pages/FlyoutsPage.axaml.cs @@ -7,7 +7,7 @@ using Avalonia.Interactivity; namespace ControlCatalog.Pages { - public partial class FlyoutsPage : UserControl + public partial class FlyoutsPage : ContentPage { public FlyoutsPage() { diff --git a/samples/ControlCatalog/Pages/FocusPage.xaml b/samples/ControlCatalog/Pages/FocusPage.xaml index f4bad7d138..6cb2647907 100644 --- a/samples/ControlCatalog/Pages/FocusPage.xaml +++ b/samples/ControlCatalog/Pages/FocusPage.xaml @@ -1,9 +1,10 @@ - @@ -47,4 +48,4 @@ - + diff --git a/samples/ControlCatalog/Pages/FocusPage.xaml.cs b/samples/ControlCatalog/Pages/FocusPage.xaml.cs index 2cc8067885..18aae471ab 100644 --- a/samples/ControlCatalog/Pages/FocusPage.xaml.cs +++ b/samples/ControlCatalog/Pages/FocusPage.xaml.cs @@ -4,7 +4,7 @@ using Avalonia.Markup.Xaml; namespace ControlCatalog.Pages; -public partial class FocusPage : UserControl +public partial class FocusPage : ContentPage { public FocusPage() { diff --git a/samples/ControlCatalog/Pages/GesturePage.xaml b/samples/ControlCatalog/Pages/GesturePage.xaml index bce18eab1d..da9ed5f807 100644 --- a/samples/ControlCatalog/Pages/GesturePage.xaml +++ b/samples/ControlCatalog/Pages/GesturePage.xaml @@ -1,11 +1,14 @@ - - - - - - - + + + + + + + + diff --git a/samples/ControlCatalog/Pages/GesturePage.cs b/samples/ControlCatalog/Pages/GesturePage.xaml.cs similarity index 96% rename from samples/ControlCatalog/Pages/GesturePage.cs rename to samples/ControlCatalog/Pages/GesturePage.xaml.cs index d8b89e0ecb..56c09573d0 100644 --- a/samples/ControlCatalog/Pages/GesturePage.cs +++ b/samples/ControlCatalog/Pages/GesturePage.xaml.cs @@ -4,7 +4,7 @@ using Avalonia.Interactivity; namespace ControlCatalog.Pages { - public partial class GesturePage : UserControl + public partial class GesturePage : ContentPage { private static readonly (string Group, string Title, string Description, Func Factory)[] Demos = { diff --git a/samples/ControlCatalog/Pages/HeaderedContentPage.axaml b/samples/ControlCatalog/Pages/HeaderedContentPage.axaml index 86a2b00b72..cbf12695fd 100644 --- a/samples/ControlCatalog/Pages/HeaderedContentPage.axaml +++ b/samples/ControlCatalog/Pages/HeaderedContentPage.axaml @@ -1,8 +1,9 @@ - - + diff --git a/samples/ControlCatalog/Pages/HeaderedContentPage.axaml.cs b/samples/ControlCatalog/Pages/HeaderedContentPage.axaml.cs index ab967c4214..bfe033f90c 100644 --- a/samples/ControlCatalog/Pages/HeaderedContentPage.axaml.cs +++ b/samples/ControlCatalog/Pages/HeaderedContentPage.axaml.cs @@ -4,7 +4,7 @@ using Avalonia.Markup.Xaml; namespace ControlCatalog.Pages; -public partial class HeaderedContentPage : UserControl +public partial class HeaderedContentPage : ContentPage { public HeaderedContentPage() { diff --git a/samples/ControlCatalog/Pages/ImagePage.xaml b/samples/ControlCatalog/Pages/ImagePage.xaml index 444d370e42..abd9ff47b0 100644 --- a/samples/ControlCatalog/Pages/ImagePage.xaml +++ b/samples/ControlCatalog/Pages/ImagePage.xaml @@ -1,5 +1,6 @@ - @@ -65,4 +66,4 @@ - + diff --git a/samples/ControlCatalog/Pages/ImagePage.xaml.cs b/samples/ControlCatalog/Pages/ImagePage.xaml.cs index f8630d7db6..eccdb9435f 100644 --- a/samples/ControlCatalog/Pages/ImagePage.xaml.cs +++ b/samples/ControlCatalog/Pages/ImagePage.xaml.cs @@ -5,7 +5,7 @@ using Avalonia.Media.Imaging; namespace ControlCatalog.Pages { - public partial class ImagePage : UserControl + public partial class ImagePage : ContentPage { public ImagePage() { diff --git a/samples/ControlCatalog/Pages/LabelsPage.axaml b/samples/ControlCatalog/Pages/LabelsPage.axaml index 5bfb2ee10e..cd367aa38a 100644 --- a/samples/ControlCatalog/Pages/LabelsPage.axaml +++ b/samples/ControlCatalog/Pages/LabelsPage.axaml @@ -1,13 +1,14 @@ - - + - + @@ -41,4 +42,4 @@ - + diff --git a/samples/ControlCatalog/Pages/LabelsPage.axaml.cs b/samples/ControlCatalog/Pages/LabelsPage.axaml.cs index f3a7647f8c..b26112b351 100644 --- a/samples/ControlCatalog/Pages/LabelsPage.axaml.cs +++ b/samples/ControlCatalog/Pages/LabelsPage.axaml.cs @@ -3,7 +3,7 @@ using ControlCatalog.Models; namespace ControlCatalog.Pages { - public partial class LabelsPage : UserControl + public partial class LabelsPage : ContentPage { private Person? _person; diff --git a/samples/ControlCatalog/Pages/LayoutTransformControlPage.xaml b/samples/ControlCatalog/Pages/LayoutTransformControlPage.xaml index 8cf3610b47..d12bbfc302 100644 --- a/samples/ControlCatalog/Pages/LayoutTransformControlPage.xaml +++ b/samples/ControlCatalog/Pages/LayoutTransformControlPage.xaml @@ -1,5 +1,6 @@ - @@ -24,4 +25,4 @@ - + diff --git a/samples/ControlCatalog/Pages/LayoutTransformControlPage.xaml.cs b/samples/ControlCatalog/Pages/LayoutTransformControlPage.xaml.cs index 2060790594..e3815238be 100644 --- a/samples/ControlCatalog/Pages/LayoutTransformControlPage.xaml.cs +++ b/samples/ControlCatalog/Pages/LayoutTransformControlPage.xaml.cs @@ -2,7 +2,7 @@ using Avalonia.Controls; namespace ControlCatalog.Pages { - public partial class LayoutTransformControlPage : UserControl + public partial class LayoutTransformControlPage : ContentPage { public LayoutTransformControlPage() { diff --git a/samples/ControlCatalog/Pages/ListBoxPage.xaml b/samples/ControlCatalog/Pages/ListBoxPage.xaml index e3a706bfed..f73a4c18ed 100644 --- a/samples/ControlCatalog/Pages/ListBoxPage.xaml +++ b/samples/ControlCatalog/Pages/ListBoxPage.xaml @@ -1,6 +1,7 @@ - @@ -47,4 +48,4 @@ SelectionMode="{Binding SelectionMode^}" WrapSelection="{Binding WrapSelection}"/> - + diff --git a/samples/ControlCatalog/Pages/ListBoxPage.xaml.cs b/samples/ControlCatalog/Pages/ListBoxPage.xaml.cs index 3dac437f3a..208b5cce4b 100644 --- a/samples/ControlCatalog/Pages/ListBoxPage.xaml.cs +++ b/samples/ControlCatalog/Pages/ListBoxPage.xaml.cs @@ -3,7 +3,7 @@ using ControlCatalog.ViewModels; namespace ControlCatalog.Pages { - public partial class ListBoxPage : UserControl + public partial class ListBoxPage : ContentPage { public ListBoxPage() { diff --git a/samples/ControlCatalog/Pages/MenuPage.xaml b/samples/ControlCatalog/Pages/MenuPage.xaml index bbcc759ca7..d9fb5d81bf 100644 --- a/samples/ControlCatalog/Pages/MenuPage.xaml +++ b/samples/ControlCatalog/Pages/MenuPage.xaml @@ -1,7 +1,8 @@ - Exported menu fallback @@ -95,4 +96,4 @@ - + diff --git a/samples/ControlCatalog/Pages/MenuPage.xaml.cs b/samples/ControlCatalog/Pages/MenuPage.xaml.cs index a07306b81d..56a229a594 100644 --- a/samples/ControlCatalog/Pages/MenuPage.xaml.cs +++ b/samples/ControlCatalog/Pages/MenuPage.xaml.cs @@ -4,7 +4,7 @@ using ControlCatalog.ViewModels; namespace ControlCatalog.Pages { - public partial class MenuPage : UserControl + public partial class MenuPage : ContentPage { public MenuPage() { diff --git a/samples/ControlCatalog/Pages/NativeEmbedPage.xaml b/samples/ControlCatalog/Pages/NativeEmbedPage.xaml index 89e636112c..71d622bae4 100644 --- a/samples/ControlCatalog/Pages/NativeEmbedPage.xaml +++ b/samples/ControlCatalog/Pages/NativeEmbedPage.xaml @@ -1,10 +1,11 @@ - @@ -65,4 +66,4 @@ - + diff --git a/samples/ControlCatalog/Pages/NativeEmbedPage.xaml.cs b/samples/ControlCatalog/Pages/NativeEmbedPage.xaml.cs index b9bac10f9a..1cd1f78cc0 100644 --- a/samples/ControlCatalog/Pages/NativeEmbedPage.xaml.cs +++ b/samples/ControlCatalog/Pages/NativeEmbedPage.xaml.cs @@ -7,7 +7,7 @@ using Avalonia.Platform; namespace ControlCatalog.Pages { - public partial class NativeEmbedPage : UserControl + public partial class NativeEmbedPage : ContentPage { public NativeEmbedPage() { diff --git a/samples/ControlCatalog/Pages/NavigationDemoPage.xaml b/samples/ControlCatalog/Pages/NavigationDemoPage.xaml index 4849b2d5b8..0f7536b6a3 100644 --- a/samples/ControlCatalog/Pages/NavigationDemoPage.xaml +++ b/samples/ControlCatalog/Pages/NavigationDemoPage.xaml @@ -1,11 +1,14 @@ - - - - - - - + + + + + + + + diff --git a/samples/ControlCatalog/Pages/NavigationDemoPage.xaml.cs b/samples/ControlCatalog/Pages/NavigationDemoPage.xaml.cs index d65a43a6ad..7ca41ab893 100644 --- a/samples/ControlCatalog/Pages/NavigationDemoPage.xaml.cs +++ b/samples/ControlCatalog/Pages/NavigationDemoPage.xaml.cs @@ -4,7 +4,7 @@ using Avalonia.Interactivity; namespace ControlCatalog.Pages { - public partial class NavigationDemoPage : UserControl + public partial class NavigationDemoPage : ContentPage { private static readonly (string Group, string Title, string Description, Func Factory)[] Demos = { diff --git a/samples/ControlCatalog/Pages/NotificationsPage.xaml b/samples/ControlCatalog/Pages/NotificationsPage.xaml index b4094d8a2e..2ae1db7d43 100644 --- a/samples/ControlCatalog/Pages/NotificationsPage.xaml +++ b/samples/ControlCatalog/Pages/NotificationsPage.xaml @@ -1,8 +1,9 @@ - - + diff --git a/samples/ControlCatalog/Pages/NotificationsPage.xaml.cs b/samples/ControlCatalog/Pages/NotificationsPage.xaml.cs index f3db564571..5ff67e10dc 100644 --- a/samples/ControlCatalog/Pages/NotificationsPage.xaml.cs +++ b/samples/ControlCatalog/Pages/NotificationsPage.xaml.cs @@ -5,7 +5,7 @@ using ControlCatalog.ViewModels; namespace ControlCatalog.Pages { - public partial class NotificationsPage : UserControl + public partial class NotificationsPage : ContentPage { private NotificationViewModel _viewModel; diff --git a/samples/ControlCatalog/Pages/NumericUpDownPage.xaml b/samples/ControlCatalog/Pages/NumericUpDownPage.xaml index a112f79c02..dcc84c3ae8 100644 --- a/samples/ControlCatalog/Pages/NumericUpDownPage.xaml +++ b/samples/ControlCatalog/Pages/NumericUpDownPage.xaml @@ -1,8 +1,9 @@ - - + diff --git a/samples/ControlCatalog/Pages/NumericUpDownPage.xaml.cs b/samples/ControlCatalog/Pages/NumericUpDownPage.xaml.cs index 379090830d..db64fba0ef 100644 --- a/samples/ControlCatalog/Pages/NumericUpDownPage.xaml.cs +++ b/samples/ControlCatalog/Pages/NumericUpDownPage.xaml.cs @@ -9,7 +9,7 @@ using MiniMvvm; namespace ControlCatalog.Pages { - public partial class NumericUpDownPage : UserControl + public partial class NumericUpDownPage : ContentPage { public NumericUpDownPage() { diff --git a/samples/ControlCatalog/Pages/OpenGl/OpenGlLeasePage.xaml b/samples/ControlCatalog/Pages/OpenGl/OpenGlLeasePage.xaml index 98640ccd51..a65e06d9ab 100644 --- a/samples/ControlCatalog/Pages/OpenGl/OpenGlLeasePage.xaml +++ b/samples/ControlCatalog/Pages/OpenGl/OpenGlLeasePage.xaml @@ -1,10 +1,9 @@ - - + diff --git a/samples/ControlCatalog/Pages/OpenGl/OpenGlLeasePage.xaml.cs b/samples/ControlCatalog/Pages/OpenGl/OpenGlLeasePage.xaml.cs index 0a6b763c78..18cdccafcd 100644 --- a/samples/ControlCatalog/Pages/OpenGl/OpenGlLeasePage.xaml.cs +++ b/samples/ControlCatalog/Pages/OpenGl/OpenGlLeasePage.xaml.cs @@ -12,7 +12,7 @@ using static Avalonia.OpenGL.GlConsts; namespace ControlCatalog.Pages; -public partial class OpenGlLeasePage : UserControl +public partial class OpenGlLeasePage : ContentPage { private CompositionCustomVisual? _visual; diff --git a/samples/ControlCatalog/Pages/OpenGlPage.xaml b/samples/ControlCatalog/Pages/OpenGlPage.xaml index 0e557cc1ad..9119be05f5 100644 --- a/samples/ControlCatalog/Pages/OpenGlPage.xaml +++ b/samples/ControlCatalog/Pages/OpenGlPage.xaml @@ -1,7 +1,8 @@ - @@ -10,4 +11,4 @@ IsVisible="False" VerticalAlignment="Bottom" HorizontalAlignment="Right" Click="SnapshotClick">Snapshot - + diff --git a/samples/ControlCatalog/Pages/OpenGlPage.xaml.cs b/samples/ControlCatalog/Pages/OpenGlPage.xaml.cs index 09173e01a5..51dc4c2c72 100644 --- a/samples/ControlCatalog/Pages/OpenGlPage.xaml.cs +++ b/samples/ControlCatalog/Pages/OpenGlPage.xaml.cs @@ -11,7 +11,7 @@ using ControlCatalog.Pages.OpenGl; namespace ControlCatalog.Pages { - public partial class OpenGlPage : UserControl + public partial class OpenGlPage : ContentPage { public OpenGlPage() { diff --git a/samples/ControlCatalog/Pages/PipsPagerPage.xaml b/samples/ControlCatalog/Pages/PipsPagerPage.xaml index 54112daae0..aee21a7d01 100644 --- a/samples/ControlCatalog/Pages/PipsPagerPage.xaml +++ b/samples/ControlCatalog/Pages/PipsPagerPage.xaml @@ -1,11 +1,14 @@ - - - - - - - + + + + + + + + diff --git a/samples/ControlCatalog/Pages/PipsPagerPage.xaml.cs b/samples/ControlCatalog/Pages/PipsPagerPage.xaml.cs index 0559a265e4..5a3b142f59 100644 --- a/samples/ControlCatalog/Pages/PipsPagerPage.xaml.cs +++ b/samples/ControlCatalog/Pages/PipsPagerPage.xaml.cs @@ -4,7 +4,7 @@ using Avalonia.Interactivity; namespace ControlCatalog.Pages { - public partial class PipsPagerPage : UserControl + public partial class PipsPagerPage : ContentPage { private static readonly (string Group, string Title, string Description, Func Factory)[] Demos = { diff --git a/samples/ControlCatalog/Pages/PlatformInfoPage.xaml b/samples/ControlCatalog/Pages/PlatformInfoPage.xaml index 22c47f6bef..f86d53b740 100644 --- a/samples/ControlCatalog/Pages/PlatformInfoPage.xaml +++ b/samples/ControlCatalog/Pages/PlatformInfoPage.xaml @@ -1,4 +1,4 @@ - @@ -53,4 +54,4 @@ - + diff --git a/samples/ControlCatalog/Pages/PlatformInfoPage.xaml.cs b/samples/ControlCatalog/Pages/PlatformInfoPage.xaml.cs index 5066bc51de..db1bbef40c 100644 --- a/samples/ControlCatalog/Pages/PlatformInfoPage.xaml.cs +++ b/samples/ControlCatalog/Pages/PlatformInfoPage.xaml.cs @@ -3,7 +3,7 @@ using ControlCatalog.ViewModels; namespace ControlCatalog.Pages { - public partial class PlatformInfoPage : UserControl + public partial class PlatformInfoPage : ContentPage { public PlatformInfoPage() { diff --git a/samples/ControlCatalog/Pages/PointersPage.xaml b/samples/ControlCatalog/Pages/PointersPage.xaml index dda85316f6..2f958b901b 100644 --- a/samples/ControlCatalog/Pages/PointersPage.xaml +++ b/samples/ControlCatalog/Pages/PointersPage.xaml @@ -1,12 +1,12 @@ - - - + - - + + - - + + - - + + Capture 2 - - - + + diff --git a/samples/ControlCatalog/Pages/PointersPage.xaml.cs b/samples/ControlCatalog/Pages/PointersPage.xaml.cs index adf45029ec..388c8fa382 100644 --- a/samples/ControlCatalog/Pages/PointersPage.xaml.cs +++ b/samples/ControlCatalog/Pages/PointersPage.xaml.cs @@ -4,7 +4,7 @@ using Avalonia.Input; namespace ControlCatalog.Pages; -public partial class PointersPage : UserControl +public partial class PointersPage : TabbedPage { public PointersPage() { diff --git a/samples/ControlCatalog/Pages/ProgressBarPage.xaml b/samples/ControlCatalog/Pages/ProgressBarPage.xaml index 52e1e198b5..3b80b5a6bb 100644 --- a/samples/ControlCatalog/Pages/ProgressBarPage.xaml +++ b/samples/ControlCatalog/Pages/ProgressBarPage.xaml @@ -1,4 +1,8 @@ - + A progress bar control @@ -18,10 +22,10 @@ - - @@ -36,4 +40,4 @@ - + diff --git a/samples/ControlCatalog/Pages/ProgressBarPage.xaml.cs b/samples/ControlCatalog/Pages/ProgressBarPage.xaml.cs index 42b9fe29d7..244161a61e 100644 --- a/samples/ControlCatalog/Pages/ProgressBarPage.xaml.cs +++ b/samples/ControlCatalog/Pages/ProgressBarPage.xaml.cs @@ -2,7 +2,7 @@ using Avalonia.Controls; namespace ControlCatalog.Pages { - public partial class ProgressBarPage : UserControl + public partial class ProgressBarPage : ContentPage { public ProgressBarPage() { diff --git a/samples/ControlCatalog/Pages/RadioButtonPage.xaml b/samples/ControlCatalog/Pages/RadioButtonPage.xaml index 8623d81b3f..efb63ea124 100644 --- a/samples/ControlCatalog/Pages/RadioButtonPage.xaml +++ b/samples/ControlCatalog/Pages/RadioButtonPage.xaml @@ -1,5 +1,6 @@ - Allows the selection of a single option of many @@ -37,4 +38,4 @@ - + diff --git a/samples/ControlCatalog/Pages/RadioButtonPage.xaml.cs b/samples/ControlCatalog/Pages/RadioButtonPage.xaml.cs index 798df9fe77..8199a7caf5 100644 --- a/samples/ControlCatalog/Pages/RadioButtonPage.xaml.cs +++ b/samples/ControlCatalog/Pages/RadioButtonPage.xaml.cs @@ -2,7 +2,7 @@ using Avalonia.Controls; namespace ControlCatalog.Pages { - public partial class RadioButtonPage : UserControl + public partial class RadioButtonPage : ContentPage { public RadioButtonPage() { diff --git a/samples/ControlCatalog/Pages/RefreshContainerPage.axaml b/samples/ControlCatalog/Pages/RefreshContainerPage.axaml index f6ea26a84c..06f54dd28a 100644 --- a/samples/ControlCatalog/Pages/RefreshContainerPage.axaml +++ b/samples/ControlCatalog/Pages/RefreshContainerPage.axaml @@ -1,4 +1,4 @@ - - + diff --git a/samples/ControlCatalog/Pages/RefreshContainerPage.axaml.cs b/samples/ControlCatalog/Pages/RefreshContainerPage.axaml.cs index a710cd7e5c..2c886fa9de 100644 --- a/samples/ControlCatalog/Pages/RefreshContainerPage.axaml.cs +++ b/samples/ControlCatalog/Pages/RefreshContainerPage.axaml.cs @@ -3,7 +3,7 @@ using ControlCatalog.ViewModels; namespace ControlCatalog.Pages { - public partial class RefreshContainerPage : UserControl + public partial class RefreshContainerPage : ContentPage { private RefreshContainerViewModel _viewModel; diff --git a/samples/ControlCatalog/Pages/RelativePanelPage.axaml b/samples/ControlCatalog/Pages/RelativePanelPage.axaml index a6647b0d36..ccc39befd4 100644 --- a/samples/ControlCatalog/Pages/RelativePanelPage.axaml +++ b/samples/ControlCatalog/Pages/RelativePanelPage.axaml @@ -1,8 +1,9 @@ - @@ -60,4 +61,4 @@ - + diff --git a/samples/ControlCatalog/Pages/RelativePanelPage.axaml.cs b/samples/ControlCatalog/Pages/RelativePanelPage.axaml.cs index aec13a18e3..3c59deb791 100644 --- a/samples/ControlCatalog/Pages/RelativePanelPage.axaml.cs +++ b/samples/ControlCatalog/Pages/RelativePanelPage.axaml.cs @@ -2,7 +2,7 @@ namespace ControlCatalog.Pages { - public partial class RelativePanelPage : UserControl + public partial class RelativePanelPage : ContentPage { public RelativePanelPage() { diff --git a/samples/ControlCatalog/Pages/ScreenPage.cs b/samples/ControlCatalog/Pages/ScreenPage.cs index 66e90c2b34..9791152923 100644 --- a/samples/ControlCatalog/Pages/ScreenPage.cs +++ b/samples/ControlCatalog/Pages/ScreenPage.cs @@ -11,7 +11,7 @@ using Avalonia.Threading; namespace ControlCatalog.Pages { - public class ScreenPage : UserControl + public class ScreenPage : ContentPage { private double _leftMost; private double _topMost; diff --git a/samples/ControlCatalog/Pages/ScrollViewerPage.xaml b/samples/ControlCatalog/Pages/ScrollViewerPage.xaml index f931542a04..0567dbe451 100644 --- a/samples/ControlCatalog/Pages/ScrollViewerPage.xaml +++ b/samples/ControlCatalog/Pages/ScrollViewerPage.xaml @@ -1,10 +1,10 @@ - - - + - - + + - - - + + diff --git a/samples/ControlCatalog/Pages/ScrollViewerPage.xaml.cs b/samples/ControlCatalog/Pages/ScrollViewerPage.xaml.cs index 7c684357d3..cfdd5bab54 100644 --- a/samples/ControlCatalog/Pages/ScrollViewerPage.xaml.cs +++ b/samples/ControlCatalog/Pages/ScrollViewerPage.xaml.cs @@ -92,7 +92,7 @@ namespace ControlCatalog.Pages public List AvailableSnapPointsAlignment { get; } } - public partial class ScrollViewerPage : UserControl + public partial class ScrollViewerPage : TabbedPage { public ScrollViewerPage() { diff --git a/samples/ControlCatalog/Pages/SliderPage.xaml b/samples/ControlCatalog/Pages/SliderPage.xaml index 7821e885ba..445564cb54 100644 --- a/samples/ControlCatalog/Pages/SliderPage.xaml +++ b/samples/ControlCatalog/Pages/SliderPage.xaml @@ -1,5 +1,6 @@ - @@ -80,4 +81,4 @@ - + diff --git a/samples/ControlCatalog/Pages/SliderPage.xaml.cs b/samples/ControlCatalog/Pages/SliderPage.xaml.cs index 8345df8716..f65f714300 100644 --- a/samples/ControlCatalog/Pages/SliderPage.xaml.cs +++ b/samples/ControlCatalog/Pages/SliderPage.xaml.cs @@ -2,7 +2,7 @@ using Avalonia.Controls; namespace ControlCatalog.Pages { - public partial class SliderPage : UserControl + public partial class SliderPage : ContentPage { public SliderPage() { diff --git a/samples/ControlCatalog/Pages/SplitViewPage.xaml b/samples/ControlCatalog/Pages/SplitViewPage.xaml index 201765ad88..144688e358 100644 --- a/samples/ControlCatalog/Pages/SplitViewPage.xaml +++ b/samples/ControlCatalog/Pages/SplitViewPage.xaml @@ -1,8 +1,9 @@ - @@ -109,4 +110,4 @@ - + diff --git a/samples/ControlCatalog/Pages/SplitViewPage.xaml.cs b/samples/ControlCatalog/Pages/SplitViewPage.xaml.cs index b711db3c49..4917a13ccf 100644 --- a/samples/ControlCatalog/Pages/SplitViewPage.xaml.cs +++ b/samples/ControlCatalog/Pages/SplitViewPage.xaml.cs @@ -3,7 +3,7 @@ using ControlCatalog.ViewModels; namespace ControlCatalog.Pages { - public partial class SplitViewPage : UserControl + public partial class SplitViewPage : ContentPage { public SplitViewPage() { diff --git a/samples/ControlCatalog/Pages/TabControlPage.xaml b/samples/ControlCatalog/Pages/TabControlPage.xaml index a3bacfd92a..e7aa18ea84 100644 --- a/samples/ControlCatalog/Pages/TabControlPage.xaml +++ b/samples/ControlCatalog/Pages/TabControlPage.xaml @@ -1,7 +1,8 @@ - @@ -108,4 +109,4 @@ - + diff --git a/samples/ControlCatalog/Pages/TabControlPage.xaml.cs b/samples/ControlCatalog/Pages/TabControlPage.xaml.cs index b7f34eda86..366b5216ef 100644 --- a/samples/ControlCatalog/Pages/TabControlPage.xaml.cs +++ b/samples/ControlCatalog/Pages/TabControlPage.xaml.cs @@ -6,7 +6,7 @@ using ControlCatalog.ViewModels; namespace ControlCatalog.Pages { - public partial class TabControlPage : UserControl + public partial class TabControlPage : ContentPage { public TabControlPage() { diff --git a/samples/ControlCatalog/Pages/TabStripPage.xaml b/samples/ControlCatalog/Pages/TabStripPage.xaml index b576beeb5f..f4a47af353 100644 --- a/samples/ControlCatalog/Pages/TabStripPage.xaml +++ b/samples/ControlCatalog/Pages/TabStripPage.xaml @@ -1,6 +1,7 @@ - @@ -31,4 +32,4 @@ - + diff --git a/samples/ControlCatalog/Pages/TabStripPage.xaml.cs b/samples/ControlCatalog/Pages/TabStripPage.xaml.cs index d2873f6586..d830109833 100644 --- a/samples/ControlCatalog/Pages/TabStripPage.xaml.cs +++ b/samples/ControlCatalog/Pages/TabStripPage.xaml.cs @@ -3,7 +3,7 @@ using ControlCatalog.ViewModels; namespace ControlCatalog.Pages { - public partial class TabStripPage : UserControl + public partial class TabStripPage : ContentPage { public TabStripPage() { diff --git a/samples/ControlCatalog/Pages/TabbedDemoPage.xaml b/samples/ControlCatalog/Pages/TabbedDemoPage.xaml index bb1467060b..58a3b4fe82 100644 --- a/samples/ControlCatalog/Pages/TabbedDemoPage.xaml +++ b/samples/ControlCatalog/Pages/TabbedDemoPage.xaml @@ -1,11 +1,14 @@ - - - - - - - + + + + + + + + diff --git a/samples/ControlCatalog/Pages/TabbedDemoPage.xaml.cs b/samples/ControlCatalog/Pages/TabbedDemoPage.xaml.cs index 51da6330a1..88692c97f3 100644 --- a/samples/ControlCatalog/Pages/TabbedDemoPage.xaml.cs +++ b/samples/ControlCatalog/Pages/TabbedDemoPage.xaml.cs @@ -4,7 +4,7 @@ using Avalonia.Interactivity; namespace ControlCatalog.Pages { - public partial class TabbedDemoPage : UserControl + public partial class TabbedDemoPage : ContentPage { private static readonly (string Group, string Title, string Description, Func Factory)[] Demos = { diff --git a/samples/ControlCatalog/Pages/TextBlockPage.xaml b/samples/ControlCatalog/Pages/TextBlockPage.xaml index 7c0300d318..3418cffe74 100644 --- a/samples/ControlCatalog/Pages/TextBlockPage.xaml +++ b/samples/ControlCatalog/Pages/TextBlockPage.xaml @@ -1,5 +1,6 @@ - A control that can display text @@ -137,4 +138,4 @@ - + diff --git a/samples/ControlCatalog/Pages/TextBlockPage.xaml.cs b/samples/ControlCatalog/Pages/TextBlockPage.xaml.cs index d097d1d083..d10d255a4f 100644 --- a/samples/ControlCatalog/Pages/TextBlockPage.xaml.cs +++ b/samples/ControlCatalog/Pages/TextBlockPage.xaml.cs @@ -2,7 +2,7 @@ using Avalonia.Controls; namespace ControlCatalog.Pages { - public partial class TextBlockPage : UserControl + public partial class TextBlockPage : ContentPage { public TextBlockPage() { diff --git a/samples/ControlCatalog/Pages/TextBoxPage.xaml b/samples/ControlCatalog/Pages/TextBoxPage.xaml index 346e561dfc..9b5a412f86 100644 --- a/samples/ControlCatalog/Pages/TextBoxPage.xaml +++ b/samples/ControlCatalog/Pages/TextBoxPage.xaml @@ -1,6 +1,7 @@ - @@ -101,4 +102,4 @@ FontFamily="avares://ControlCatalog/Assets/Fonts#WenQuanYi Micro Hei" Text="计算机科学(是系统性研究信息与计算的理论基础以及它们在计算机系统中如何实现与应用的实用技术的学科。它通常被形容为对那些创造、描述以及转换信息的算法处理的系统研究。计算机科学包含很多分支领域;有些强调特定结果的计算,比如计算机图形学;而有些是探討计算问题的性质,比如计算复杂性理论;还有一些领域專注于怎样实现计算,比如程式語言理論是研究描述计算的方法,而程式设计是应用特定的程式語言解决特定的计算问题,人机交互则是專注于怎样使计算机和计算变得有用、好用,以及随时随地为人所用。 有时公众会误以为计算机科学就是解决计算机问题的事业(比如信息技术),或者只是与使用计算机的经验有关,如玩游戏、上网或者文字处理。其实计算机科学所关注的,不仅仅是去理解实现类似游戏、浏览器这些软件的程序的性质,更要通过现有的知识创造新的程序或者改进已有的程序。" /> - + diff --git a/samples/ControlCatalog/Pages/TextBoxPage.xaml.cs b/samples/ControlCatalog/Pages/TextBoxPage.xaml.cs index 035f951a6b..3c38a05c53 100644 --- a/samples/ControlCatalog/Pages/TextBoxPage.xaml.cs +++ b/samples/ControlCatalog/Pages/TextBoxPage.xaml.cs @@ -2,7 +2,7 @@ using Avalonia.Controls; namespace ControlCatalog.Pages { - public partial class TextBoxPage : UserControl + public partial class TextBoxPage : ContentPage { public TextBoxPage() { diff --git a/samples/ControlCatalog/Pages/ThemePage.axaml b/samples/ControlCatalog/Pages/ThemePage.axaml index 7eb95471a0..ccc5769fe7 100644 --- a/samples/ControlCatalog/Pages/ThemePage.axaml +++ b/samples/ControlCatalog/Pages/ThemePage.axaml @@ -1,13 +1,14 @@ - - + @@ -52,7 +53,7 @@ - + - + diff --git a/samples/ControlCatalog/Pages/ThemePage.axaml.cs b/samples/ControlCatalog/Pages/ThemePage.axaml.cs index d355b399a4..4f45e93ed0 100644 --- a/samples/ControlCatalog/Pages/ThemePage.axaml.cs +++ b/samples/ControlCatalog/Pages/ThemePage.axaml.cs @@ -4,7 +4,7 @@ using Avalonia.Styling; namespace ControlCatalog.Pages { - public partial class ThemePage : UserControl + public partial class ThemePage : ContentPage { public static ThemeVariant Pink { get; } = new("Pink", ThemeVariant.Light); diff --git a/samples/ControlCatalog/Pages/ToggleSwitchPage.xaml b/samples/ControlCatalog/Pages/ToggleSwitchPage.xaml index 6afe6dd135..126cc7e7d2 100644 --- a/samples/ControlCatalog/Pages/ToggleSwitchPage.xaml +++ b/samples/ControlCatalog/Pages/ToggleSwitchPage.xaml @@ -1,5 +1,6 @@ - @@ -17,7 +18,7 @@ + Text="<ToggleSwitch>headered</ToggleSwitch>"/> @@ -26,14 +27,14 @@ + OnContent="On" + OffContent="Off" + Margin="10"/> - + @@ -55,7 +56,7 @@ ContentOff="Off" />" - + - - + + diff --git a/samples/ControlCatalog/Pages/ToggleSwitchPage.xaml.cs b/samples/ControlCatalog/Pages/ToggleSwitchPage.xaml.cs index 77d77daeed..a60eb295b0 100644 --- a/samples/ControlCatalog/Pages/ToggleSwitchPage.xaml.cs +++ b/samples/ControlCatalog/Pages/ToggleSwitchPage.xaml.cs @@ -2,7 +2,7 @@ namespace ControlCatalog.Pages { - public partial class ToggleSwitchPage : UserControl + public partial class ToggleSwitchPage : ContentPage { public ToggleSwitchPage() { diff --git a/samples/ControlCatalog/Pages/ToolTipPage.xaml b/samples/ControlCatalog/Pages/ToolTipPage.xaml index 8b76cccbc9..cc3a50b8e9 100644 --- a/samples/ControlCatalog/Pages/ToolTipPage.xaml +++ b/samples/ControlCatalog/Pages/ToolTipPage.xaml @@ -1,5 +1,6 @@ - @@ -10,7 +11,7 @@ HorizontalAlignment="Center"> - + diff --git a/samples/ControlCatalog/Pages/ToolTipPage.xaml.cs b/samples/ControlCatalog/Pages/ToolTipPage.xaml.cs index cd0b5c72a8..e436407dc5 100644 --- a/samples/ControlCatalog/Pages/ToolTipPage.xaml.cs +++ b/samples/ControlCatalog/Pages/ToolTipPage.xaml.cs @@ -6,7 +6,7 @@ using Avalonia.Interactivity; namespace ControlCatalog.Pages { - public partial class ToolTipPage : UserControl + public partial class ToolTipPage : ContentPage { public ToolTipPage() { diff --git a/samples/ControlCatalog/Pages/TransitioningContentControlPage.axaml b/samples/ControlCatalog/Pages/TransitioningContentControlPage.axaml index 03ef86fb61..5435ed278d 100644 --- a/samples/ControlCatalog/Pages/TransitioningContentControlPage.axaml +++ b/samples/ControlCatalog/Pages/TransitioningContentControlPage.axaml @@ -1,19 +1,20 @@ - - + - + - + - + - + 8 - + @@ -81,4 +82,4 @@ - + diff --git a/samples/ControlCatalog/Pages/TransitioningContentControlPage.axaml.cs b/samples/ControlCatalog/Pages/TransitioningContentControlPage.axaml.cs index 863ddae6e0..818ab6219d 100644 --- a/samples/ControlCatalog/Pages/TransitioningContentControlPage.axaml.cs +++ b/samples/ControlCatalog/Pages/TransitioningContentControlPage.axaml.cs @@ -2,7 +2,7 @@ using Avalonia.Controls; namespace ControlCatalog.Pages { - public partial class TransitioningContentControlPage : UserControl + public partial class TransitioningContentControlPage : ContentPage { public TransitioningContentControlPage() { diff --git a/samples/ControlCatalog/Pages/TreeViewPage.xaml b/samples/ControlCatalog/Pages/TreeViewPage.xaml index 2e3fca58cb..88dc65b5f2 100644 --- a/samples/ControlCatalog/Pages/TreeViewPage.xaml +++ b/samples/ControlCatalog/Pages/TreeViewPage.xaml @@ -1,6 +1,7 @@ - @@ -32,4 +33,4 @@ - + diff --git a/samples/ControlCatalog/Pages/TreeViewPage.xaml.cs b/samples/ControlCatalog/Pages/TreeViewPage.xaml.cs index c43c2eb49e..d03590febd 100644 --- a/samples/ControlCatalog/Pages/TreeViewPage.xaml.cs +++ b/samples/ControlCatalog/Pages/TreeViewPage.xaml.cs @@ -3,7 +3,7 @@ using ControlCatalog.ViewModels; namespace ControlCatalog.Pages { - public partial class TreeViewPage : UserControl + public partial class TreeViewPage : ContentPage { public TreeViewPage() { diff --git a/samples/ControlCatalog/Pages/ViewboxPage.xaml b/samples/ControlCatalog/Pages/ViewboxPage.xaml index e66655253c..3848e405db 100644 --- a/samples/ControlCatalog/Pages/ViewboxPage.xaml +++ b/samples/ControlCatalog/Pages/ViewboxPage.xaml @@ -1,6 +1,7 @@ - @@ -50,4 +51,4 @@ - + diff --git a/samples/ControlCatalog/Pages/ViewboxPage.xaml.cs b/samples/ControlCatalog/Pages/ViewboxPage.xaml.cs index c140cb9857..f7b1ea3f75 100644 --- a/samples/ControlCatalog/Pages/ViewboxPage.xaml.cs +++ b/samples/ControlCatalog/Pages/ViewboxPage.xaml.cs @@ -2,7 +2,7 @@ using Avalonia.Controls; namespace ControlCatalog.Pages { - public partial class ViewboxPage : UserControl + public partial class ViewboxPage : ContentPage { public ViewboxPage() { diff --git a/samples/ControlCatalog/Pages/WindowCustomizationsPage.xaml b/samples/ControlCatalog/Pages/WindowCustomizationsPage.xaml index df84c0bd6b..a782dbec23 100644 --- a/samples/ControlCatalog/Pages/WindowCustomizationsPage.xaml +++ b/samples/ControlCatalog/Pages/WindowCustomizationsPage.xaml @@ -1,12 +1,14 @@ - + x:CompileBindings="True" + DataContext="{Binding $parent[Window].DataContext}"> - + diff --git a/samples/ControlCatalog/Pages/WindowCustomizationsPage.xaml.cs b/samples/ControlCatalog/Pages/WindowCustomizationsPage.xaml.cs index d62c7ec10f..2ee8677eba 100644 --- a/samples/ControlCatalog/Pages/WindowCustomizationsPage.xaml.cs +++ b/samples/ControlCatalog/Pages/WindowCustomizationsPage.xaml.cs @@ -2,7 +2,7 @@ namespace ControlCatalog.Pages { - public partial class WindowCustomizationsPage : UserControl + public partial class WindowCustomizationsPage : ContentPage { public WindowCustomizationsPage() { diff --git a/samples/ControlCatalog/ScrollPage.xaml b/samples/ControlCatalog/ScrollPage.xaml new file mode 100644 index 0000000000..6d5ecb815e --- /dev/null +++ b/samples/ControlCatalog/ScrollPage.xaml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + diff --git a/samples/ControlCatalog/ViewModels/MainWindowViewModel.cs b/samples/ControlCatalog/ViewModels/MainWindowViewModel.cs index ce9209f61a..0d877b253f 100644 --- a/samples/ControlCatalog/ViewModels/MainWindowViewModel.cs +++ b/samples/ControlCatalog/ViewModels/MainWindowViewModel.cs @@ -8,7 +8,7 @@ using MiniMvvm; namespace ControlCatalog.ViewModels { - class MainWindowViewModel : ViewModelBase + partial class MainWindowViewModel : ViewModelBase { private WindowState _windowState; private WindowState[] _windowStates = Array.Empty(); @@ -20,6 +20,7 @@ namespace ControlCatalog.ViewModels private bool _canResize; private bool _canMinimize; private bool _canMaximize; + private int _selectedDecorationIndex; public MainWindowViewModel() { @@ -51,6 +52,8 @@ namespace ControlCatalog.ViewModels CanResize = true; CanMinimize = true; CanMaximize = true; + + Filter(); } public bool ExtendClientAreaEnabled @@ -113,6 +116,12 @@ namespace ControlCatalog.ViewModels set { RaiseAndSetIfChanged(ref _canMaximize, value); } } + public int SelectedDecorationIndex + { + get { return _selectedDecorationIndex; } + set { RaiseAndSetIfChanged(ref _selectedDecorationIndex, value); } + } + public MiniCommand AboutCommand { get; } diff --git a/samples/ControlCatalog/ViewModels/MainWindowViewModel_PageList.cs b/samples/ControlCatalog/ViewModels/MainWindowViewModel_PageList.cs new file mode 100644 index 0000000000..03047bedae --- /dev/null +++ b/samples/ControlCatalog/ViewModels/MainWindowViewModel_PageList.cs @@ -0,0 +1,248 @@ +using Avalonia.Controls; +using Avalonia.Controls.ApplicationLifetimes; +using Avalonia.Dialogs; +using System; +using System.ComponentModel.DataAnnotations; +using Avalonia; +using MiniMvvm; +using Avalonia.Collections; +using ControlCatalog.Pages; +using System.Globalization; +using System.Text; +using System.Threading.Tasks; +using System.Collections.Generic; +using System.Linq; + +namespace ControlCatalog.ViewModels +{ + partial class MainWindowViewModel + { + private int _selectedPageIndex; + private bool _isDrawerOpened = true; + private bool _ignoreListChange = false; + private string? _query = ""; + private PageItem? _currentItem; + private SplitViewDisplayMode _displayMode; + + private List _items = new() + { + new PageItem("Composition", () => new CompositionPage(), Icons.Layers), + new PageItem("Accelerator", () => new AcceleratorPage(), Icons.Keyboard), + new PageItem("Acrylic", () => new AcrylicPage(), Icons.Blur), + new PageItem("AdornerLayer", () => new AdornerLayerPage(), Icons.Sparkle), + new PageItem("AutoCompleteBox",() => new AutoCompleteBoxPage(), Icons.TextInput), + new PageItem("Border",() => new BorderPage(), Icons.Border), + new PageItem("BitmapCache",() => new BitmapCachePage(), Icons.Lightning), + new PageItem("Buttons",() => new ButtonsPage(), Icons.CursorClick), + new PageItem("ButtonSpinner",() => new ButtonSpinnerPage(), Icons.Spinner), + new PageItem("Calendar",() => new CalendarPage(), Icons.Calendar), + new PageItem("Canvas",() => new CanvasPage(), Icons.Canvas), + new PageItem("CommandBar",() => new CommandBarPage(), Icons.Terminal), + new PageItem("Carousel",() => new Pages.CarouselPage(), Icons.Slides), + new PageItem("CarouselPage",() => new CarouselDemoPage(), Icons.Slides), + new PageItem("CheckBox",() => new CheckBoxPage(), Icons.Checkbox), + new PageItem("Clipboard",() => new ClipboardPage(), Icons.Clipboard), + new PageItem("ColorPicker",() => new ColorPickerPage(), Icons.Palette), + new PageItem("ComboBox",() => new ComboBoxPage(), Icons.Dropdown), + new PageItem("Container Queries",() => new ContainerQueryPage(), Icons.Container), + new PageItem("ContentPage",() => new ContentDemoPage(), Icons.Document), + new PageItem("ContextFlyout",() => new ContextFlyoutPage(), Icons.Menu), + new PageItem("ContextMenu",() => new ContextMenuPage(), Icons.Menu), + new PageItem("Cursor",() => new CursorPage(), Icons.Cursor), + new PageItem("Custom Drawing",() => new CustomDrawing(), Icons.Brush), + new PageItem("DataGrid",() => new DataGridPage(), Icons.Grid), + new PageItem("Data Validation",() => new DataValidationPage(), Icons.Shield), + new PageItem("Date/Time Picker",() => new DateTimePickerPage(), Icons.Clock), + new PageItem("CalendarDatePicker",() => new CalendarDatePickerPage(), Icons.Calendar), + new PageItem("Dialogs",() => new DialogsPage(), Icons.Dialog), + new PageItem("Drag+Drop",() => new DragAndDropPage(), Icons.DragDrop), + new PageItem("DrawerPage",() => new DrawerDemoPage(), Icons.Drawer), + new PageItem("Expander",() => new ExpanderPage(), Icons.Expand), + new PageItem("Flyouts",() => new FlyoutsPage(), Icons.Flyout), + new PageItem("Focus",() => new FocusPage(), Icons.Target), + new PageItem("Gestures",() => new GesturePage(), Icons.Gesture), + new PageItem("Image",() => new ImagePage(), Icons.Image), + new PageItem("Label",() => new LabelsPage(), Icons.Tag), + new PageItem("LayoutTransformControl",() => new LayoutTransformControlPage(), Icons.Transform), + new PageItem("ListBox",() => new ListBoxPage(), Icons.List), + new PageItem("Menu",() => new MenuPage(), Icons.Menu), + new PageItem("NavigationPage",() => new NavigationDemoPage(), Icons.Navigation), + new PageItem("Notifications",() => new NotificationsPage(), Icons.Bell), + new PageItem("NumericUpDown",() => new NumericUpDownPage(), Icons.Number), + new PageItem("OpenGL",() => new OpenGlPage(), Icons.Cube3D), + new PageItem("OpenGL Lease",() => new OpenGlLeasePage(), Icons.Cube3D), + new PageItem("PipsPager",() => new PipsPagerPage(), Icons.HorizontalDots), + new PageItem("Platform Information",() => new PlatformInfoPage(), Icons.Info), + new PageItem("Pointers",() => new PointersPage(), Icons.Cursor), + new PageItem("ProgressBar",() => new ProgressBarPage(), Icons.Progress), + new PageItem("RadioButton",() => new RadioButtonPage(), Icons.Radio), + new PageItem("RefreshContainer",() => new RefreshContainerPage(), Icons.Refresh), + new PageItem("RelativePanel",() => new RelativePanelPage(), Icons.Layout), + new PageItem("ScrollViewer",() => new ScrollViewerPage(), Icons.Scroll), + new PageItem("Slider",() => new SliderPage(), Icons.Tune), + new PageItem("SplitView",() => new SplitViewPage(), Icons.Split), + new PageItem("TabbedPage",() => new TabbedDemoPage(), Icons.Tab), + new PageItem("TabControl",() => new TabControlPage(), Icons.Tab), + new PageItem("TabStrip",() => new TabStripPage(), Icons.Tab), + new PageItem("TextBox",() => new TextBoxPage(), Icons.TextInput), + new PageItem("TextBlock",() => new TextBlockPage(), Icons.TextInput), + new PageItem("Theme Variants",() => new ThemePage(), Icons.Theme), + new PageItem("ToggleSwitch",() => new ToggleSwitchPage(), Icons.Toggle), + new PageItem("ToolTip",() => new ToolTipPage(), Icons.Tooltip), + new PageItem("TransitioningContentControl",() => new TransitioningContentControlPage(), Icons.Transition), + new PageItem("TreeView",() => new TreeViewPage(), Icons.Tree), + new PageItem("Viewbox",() => new ViewboxPage(), Icons.Viewbox), + new PageItem("Native Embed",() => new NativeEmbedPage(), Icons.Puzzle), + new PageItem("Window Customizations",() => new WindowCustomizationsPage(), Icons.Window), + new PageItem("HeaderedContentControl",() => new HeaderedContentPage(), Icons.Header), + new PageItem("Screens",() => new ScreenPage(), Icons.Monitor), + }; + + public AvaloniaList Pages { get; } = new AvaloniaList(); + + public void Filter(string? query = "") + { + try + { + _ignoreListChange = true; + Pages.Clear(); + + if (string.IsNullOrWhiteSpace(query)) + { + Pages.AddRange(_items); + } + else + { + var querySearchKey = PageItem.CreateSearchKey(query); + + if (querySearchKey.Length == 0) + { + Pages.AddRange(_items); + } + else + { + foreach (var item in _items) + { + if (item.MatchesSearch(querySearchKey)) + { + Pages.Add(item); + } + } + } + } + } + finally + { + _ignoreListChange = false; + if (_currentItem != null) + { + var newIndex = Pages.IndexOf(_currentItem); + if (newIndex != -1) + { + SelectedPageIndex = newIndex; + } + } + } + } + + public INavigation? Navigator { get; internal set; } + + public int SelectedPageIndex + { + get { return _selectedPageIndex; } + set + { + RaiseAndSetIfChanged(ref _selectedPageIndex, value); + + if (!_ignoreListChange) + { + NavigateTo(_selectedPageIndex); + + if (DisplayMode == SplitViewDisplayMode.CompactOverlay || DisplayMode == SplitViewDisplayMode.Overlay) + IsDrawerOpened = false; + } + } + } + + public bool IsDrawerOpened + { + get { return _isDrawerOpened; } + set { RaiseAndSetIfChanged(ref _isDrawerOpened, value); } + } + + public SplitViewDisplayMode DisplayMode + { + get { return _displayMode; } + set { RaiseAndSetIfChanged(ref _displayMode, value); } + } + + public string? Query + { + get { return _query; } + set + { + RaiseAndSetIfChanged(ref _query, value); + + Filter(value); + } + } + + private async void NavigateTo(int pageIndex) + { + if (pageIndex < 0 || pageIndex >= Pages.Count || Navigator is null) + return; + + var item = Pages[pageIndex]; + + if (item != null) + { + var view = item.Factory(); + if (view is Page page && view.GetType() != Navigator.NavigationStack.LastOrDefault()?.GetType()) + { + _currentItem = item; + await Navigator.ReplaceAsync(page); + } + } + } + } + + class PageItem(string header, Func factory, string? iconData = null) + { + public string Header { get; } = header; + public Func Factory { get; } = factory; + public string? IconData { get; } = iconData; + private string SearchKey { get; } = CreateSearchKey(header); + + public bool IsVisible { get; set; } = true; + + public bool MatchesSearch(string searchKey) + { + return SearchKey.Contains(searchKey, StringComparison.Ordinal); + } + + public static string CreateSearchKey(string value) + { + var normalizedValue = value.Normalize(NormalizationForm.FormKD); + var builder = new StringBuilder(normalizedValue.Length); + + foreach (var c in normalizedValue) + { + var category = CharUnicodeInfo.GetUnicodeCategory(c); + + if (category is UnicodeCategory.NonSpacingMark or + UnicodeCategory.SpacingCombiningMark or + UnicodeCategory.EnclosingMark) + { + continue; + } + + if (char.IsLetterOrDigit(c)) + { + builder.Append(char.ToUpperInvariant(c)); + } + } + + return builder.ToString(); + } + } +} diff --git a/samples/SampleControls/HamburgerMenu/HamburgerMenu.xaml b/samples/SampleControls/HamburgerMenu/HamburgerMenu.xaml index d9b3e3c73f..b4d9900617 100644 --- a/samples/SampleControls/HamburgerMenu/HamburgerMenu.xaml +++ b/samples/SampleControls/HamburgerMenu/HamburgerMenu.xaml @@ -33,8 +33,8 @@ #FFFFFFFF #FFF2F2F2 - - + + 40 220 36 @@ -134,14 +134,14 @@ - + diff --git a/src/Avalonia.Themes.Fluent/Controls/PathIcon.xaml b/src/Avalonia.Themes.Fluent/Controls/PathIcon.xaml index a3395ad99f..2a817ccfcb 100644 --- a/src/Avalonia.Themes.Fluent/Controls/PathIcon.xaml +++ b/src/Avalonia.Themes.Fluent/Controls/PathIcon.xaml @@ -10,7 +10,6 @@ - diff --git a/src/Avalonia.Themes.Simple/Controls/DrawerPage.xaml b/src/Avalonia.Themes.Simple/Controls/DrawerPage.xaml index 42445ff4c3..fa1b5796eb 100644 --- a/src/Avalonia.Themes.Simple/Controls/DrawerPage.xaml +++ b/src/Avalonia.Themes.Simple/Controls/DrawerPage.xaml @@ -103,14 +103,15 @@ VerticalAlignment="Center"/> - + - + - diff --git a/src/Avalonia.X11/Clipboard/X11Clipboard.cs b/src/Avalonia.X11/Clipboard/X11Clipboard.cs index 35abbf11c1..48d50d076a 100644 --- a/src/Avalonia.X11/Clipboard/X11Clipboard.cs +++ b/src/Avalonia.X11/Clipboard/X11Clipboard.cs @@ -253,6 +253,9 @@ namespace Avalonia.X11.Clipboard { foreach (var format in dataTransfer.Formats) { + if (format.Kind == DataFormatKind.InProcess) + continue; + foreach (var atom in ClipboardDataFormatHelper.ToAtoms(format, _textAtoms, _x11.Atoms)) atoms.Add(atom); } diff --git a/src/Browser/Avalonia.Browser/ClipboardImpl.cs b/src/Browser/Avalonia.Browser/ClipboardImpl.cs index 75f50a5e93..3a4d44c278 100644 --- a/src/Browser/Avalonia.Browser/ClipboardImpl.cs +++ b/src/Browser/Avalonia.Browser/ClipboardImpl.cs @@ -40,6 +40,9 @@ internal sealed class ClipboardImpl : IClipboardImpl { foreach (var format in dataTransferItem.Formats) { + if (format.Kind == DataFormatKind.InProcess) + continue; + var formatString = ToBrowserFormat(format); if (!IsClipboardFormatSupported(formatString)) continue; diff --git a/src/Browser/Avalonia.Browser/webapp/modules/storage/storageItem.ts b/src/Browser/Avalonia.Browser/webapp/modules/storage/storageItem.ts index f30e6f5916..0e76b93646 100644 --- a/src/Browser/Avalonia.Browser/webapp/modules/storage/storageItem.ts +++ b/src/Browser/Avalonia.Browser/webapp/modules/storage/storageItem.ts @@ -52,7 +52,7 @@ export class StorageItem { throw new Error("StorageItem is not a file"); } - await item.verityPermissions("read"); + await item.verifyPermissions("read"); const file = await (item.handle as FileSystemFileHandle).getFile(); return file; @@ -63,9 +63,9 @@ export class StorageItem { throw new Error("StorageItem is not a writeable file"); } - await item.verityPermissions("readwrite"); + await item.verifyPermissions("readwrite"); - return await (item.handle as FileSystemFileHandle).createWritable({ keepExistingData: true }); + return await (item.handle as FileSystemFileHandle).createWritable({ keepExistingData: false }); } public static async getProperties(item: StorageItem): Promise<{ Size: number; LastModified: number; Type: string } | null> { @@ -102,9 +102,12 @@ export class StorageItem { throw new TypeError("Unable to create item in the requested directory"); } - await item.verityPermissions("readwrite"); - - return await ((item.handle as any).getFileHandle(name, { create: true }) as Promise); + await item.verifyPermissions("readwrite"); + // The file should be truncated when it is created. + const fileHandle = await ((item.handle as any).getFileHandle(name, { create: true }) as Promise); + const writable = await fileHandle.createWritable({ keepExistingData: false }); + await writable.close(); + return fileHandle; } public static async getFile(item: StorageItem, name: string): Promise { @@ -112,7 +115,7 @@ export class StorageItem { return null; } - await item.verityPermissions("read"); + await item.verifyPermissions("read"); return await ((item.handle as any).getFileHandle(name) as Promise); } @@ -122,7 +125,7 @@ export class StorageItem { throw new TypeError("Unable to create item in the requested directory"); } - await item.verityPermissions("readwrite"); + await item.verifyPermissions("readwrite"); return await ((item.handle as any).getDirectoryHandle(name, { create: true }) as Promise); } @@ -132,7 +135,7 @@ export class StorageItem { return null; } - await item.verityPermissions("read"); + await item.verifyPermissions("read"); return await ((item.handle as any).getDirectoryHandle(name) as Promise); } @@ -142,7 +145,7 @@ export class StorageItem { return null; } - await item.verityPermissions("readwrite"); + await item.verifyPermissions("readwrite"); return await ((item.handle as any).remove({ recursive: true }) as Promise); } @@ -155,12 +158,12 @@ export class StorageItem { throw new TypeError("Unable to move item to the requested directory"); } - await item.verityPermissions("readwrite"); + await item.verifyPermissions("readwrite"); return await ((item.handle as any).move(destination /*, newName */) as Promise); } - private async verityPermissions(mode: "read" | "readwrite"): Promise { + private async verifyPermissions(mode: "read" | "readwrite"): Promise { if (!this.handle) { return; } diff --git a/src/HarfBuzz/Avalonia.HarfBuzz/HarfBuzzTextShaper.cs b/src/HarfBuzz/Avalonia.HarfBuzz/HarfBuzzTextShaper.cs index ee8ee2a531..b1bc41237c 100644 --- a/src/HarfBuzz/Avalonia.HarfBuzz/HarfBuzzTextShaper.cs +++ b/src/HarfBuzz/Avalonia.HarfBuzz/HarfBuzzTextShaper.cs @@ -86,13 +86,14 @@ namespace Avalonia.Harfbuzz var glyphIndex = (ushort)sourceInfo.Codepoint; - var glyphCluster = (int)sourceInfo.Cluster; + var originalCluster = (int)sourceInfo.Cluster; + var glyphCluster = originalCluster - start; var glyphAdvance = GetGlyphAdvance(glyphPositions, i, textScale) + options.LetterSpacing; var glyphOffset = GetGlyphOffset(glyphPositions, i, textScale); - if (glyphCluster < containingText.Length && containingText[glyphCluster] == '\t') + if (originalCluster < containingText.Length && containingText[originalCluster] == '\t') { glyphIndex = glyphTypeface.CharacterToGlyphMap[' ']; diff --git a/src/Headless/Avalonia.Headless/HeadlessUnitTestSession.cs b/src/Headless/Avalonia.Headless/HeadlessUnitTestSession.cs index cda9c4ae75..0d48dd6919 100644 --- a/src/Headless/Avalonia.Headless/HeadlessUnitTestSession.cs +++ b/src/Headless/Avalonia.Headless/HeadlessUnitTestSession.cs @@ -96,11 +96,16 @@ public sealed class HeadlessUnitTestSession : IDisposable, IAsyncDisposable using var globalCts = token.Register(s => ((CancellationTokenSource)s!).Cancel(), cts, true); using var localCts = cancellationToken.Register(s => ((CancellationTokenSource)s!).Cancel(), cts, true); + var application = _isolated + ? EnsureIsolatedApplication() + : EnsureSharedApplication(); + + bool shouldCancel = false; + Exception? caught = null; + TResult result = default!; + try { - using var application = _isolated - ? EnsureIsolatedApplication() - : EnsureSharedApplication(); var task = action(); if (task.Status != TaskStatus.RanToCompletion) { @@ -110,22 +115,36 @@ public sealed class HeadlessUnitTestSession : IDisposable, IAsyncDisposable if (cts.IsCancellationRequested) { - tcs.TrySetCanceled(cts.Token); - return; + shouldCancel = true; + } + else + { + var frame = new DispatcherFrame(); + using var innerCts = cts.Token.Register(() => frame.Continue = false, true); + Dispatcher.UIThread.PushFrame(frame); + result = task.GetAwaiter().GetResult(); } - - var frame = new DispatcherFrame(); - using var innerCts = cts.Token.Register(() => frame.Continue = false, true); - Dispatcher.UIThread.PushFrame(frame); } - - var result = task.GetAwaiter().GetResult(); - tcs.TrySetResult(result); + else + { + result = task.GetAwaiter().GetResult(); + } } catch (Exception ex) { - tcs.TrySetException(ex); + caught = ex; } + finally + { + application.Dispose(); + } + + if (caught != null) + tcs.TrySetException(caught); + else if (shouldCancel) + tcs.TrySetCanceled(cts.Token); + else + tcs.TrySetResult(result); }, executionContext)); return tcs.Task; } diff --git a/src/Headless/Avalonia.Headless/HeadlessWindowExtensions.cs b/src/Headless/Avalonia.Headless/HeadlessWindowExtensions.cs index 78b89d6cb1..8bb3bf4f34 100644 --- a/src/Headless/Avalonia.Headless/HeadlessWindowExtensions.cs +++ b/src/Headless/Avalonia.Headless/HeadlessWindowExtensions.cs @@ -153,7 +153,11 @@ public static class HeadlessWindowExtensions private static IHeadlessWindow GetImpl(this TopLevel topLevel) { - return topLevel.PlatformImpl as IHeadlessWindow ?? - throw new InvalidOperationException("TopLevel must be a headless window."); + return topLevel.PlatformImpl switch + { + null => throw new ObjectDisposedException(topLevel.GetType().Name), + IHeadlessWindow headless => headless, + _ => throw new InvalidOperationException("TopLevel must be a headless window.") + }; } } diff --git a/src/Linux/Avalonia.LinuxFramebuffer/EpollDispatcherImpl.cs b/src/Linux/Avalonia.LinuxFramebuffer/EpollDispatcherImpl.cs index 525512c537..bf94c8936a 100644 --- a/src/Linux/Avalonia.LinuxFramebuffer/EpollDispatcherImpl.cs +++ b/src/Linux/Avalonia.LinuxFramebuffer/EpollDispatcherImpl.cs @@ -8,7 +8,7 @@ using Avalonia.Threading; namespace Avalonia.LinuxFramebuffer; -internal unsafe class EpollDispatcherImpl : IControlledDispatcherImpl +internal unsafe class EpollDispatcherImpl : IControlledDispatcherImpl, IDispatcherImplWithExplicitBackgroundProcessing { private readonly ManagedDispatcherImpl.IManagedDispatcherInputProvider _inputProvider; private readonly Thread _mainThread; @@ -88,6 +88,7 @@ internal unsafe class EpollDispatcherImpl : IControlledDispatcherImpl private TimeSpan? _nextTimer; private int _epoll; private Stopwatch _clock = Stopwatch.StartNew(); + private bool _backgroundProcessingRequested; public EpollDispatcherImpl(ManagedDispatcherImpl.IManagedDispatcherInputProvider inputProvider) { @@ -151,6 +152,19 @@ internal unsafe class EpollDispatcherImpl : IControlledDispatcherImpl continue; } + bool triggerBackgroundProcessing; + lock (_lock) + { + triggerBackgroundProcessing = _backgroundProcessingRequested; + _backgroundProcessingRequested = false; + } + + if (triggerBackgroundProcessing) + { + ReadyForBackgroundProcessing?.Invoke(); + continue; + } + epoll_event ev; if (_nextTimer != null) @@ -235,4 +249,20 @@ internal unsafe class EpollDispatcherImpl : IControlledDispatcherImpl public bool CanQueryPendingInput => true; public bool HasPendingInput => _inputProvider.HasInput; + + private Action? ReadyForBackgroundProcessing { get; set; } + event Action? IDispatcherImplWithExplicitBackgroundProcessing.ReadyForBackgroundProcessing + { + add => ReadyForBackgroundProcessing += value; + remove => ReadyForBackgroundProcessing -= value; + } + + void IDispatcherImplWithExplicitBackgroundProcessing.RequestBackgroundProcessing() + { + lock (_lock) + { + _backgroundProcessingRequested = true; + Wakeup(); + } + } } diff --git a/src/Skia/Avalonia.Skia/Gpu/Metal/AutoReleasePool.cs b/src/Skia/Avalonia.Skia/Gpu/Metal/AutoReleasePool.cs new file mode 100644 index 0000000000..76aa09b603 --- /dev/null +++ b/src/Skia/Avalonia.Skia/Gpu/Metal/AutoReleasePool.cs @@ -0,0 +1,30 @@ +using System; +using System.Runtime.InteropServices; +using System.Threading; + +namespace Avalonia.Skia.Metal; + +internal sealed partial class AutoReleasePool : IDisposable +{ + private IntPtr _pool; + + public AutoReleasePool() + { + _pool = Push(); + } + + public void Dispose() + { + var pool = Interlocked.Exchange(ref _pool, IntPtr.Zero); + if (pool != IntPtr.Zero) + { + Pop(pool); + } + } + + [LibraryImport("libobjc", EntryPoint = "objc_autoreleasePoolPush")] + private static partial IntPtr Push(); + + [LibraryImport("libobjc", EntryPoint = "objc_autoreleasePoolPop")] + private static partial void Pop(IntPtr pool); +} diff --git a/src/Skia/Avalonia.Skia/Gpu/Metal/SkiaMetalGpu.cs b/src/Skia/Avalonia.Skia/Gpu/Metal/SkiaMetalGpu.cs index 402d83fd10..ccb3a51705 100644 --- a/src/Skia/Avalonia.Skia/Gpu/Metal/SkiaMetalGpu.cs +++ b/src/Skia/Avalonia.Skia/Gpu/Metal/SkiaMetalGpu.cs @@ -97,15 +97,33 @@ internal class SkiaMetalGpu : ISkiaGpu public ISkiaGpuRenderSession BeginRenderingSession(IRenderTarget.RenderTargetSceneInfo sceneInfo) { // TODO: use expectedPixelSize - var session = (_target ?? throw new ObjectDisposedException(nameof(SkiaMetalRenderTarget))).BeginRendering(); - var backendTarget = new GRBackendRenderTarget(session.Size.Width, session.Size.Height, - new GRMtlTextureInfo(session.Texture)); + IMetalPlatformSurfaceRenderingSession? session = null; + GRBackendRenderTarget? backendTarget = null; + SKSurface? surface = null; + var success = false; + try + { + session = (_target ?? throw new ObjectDisposedException(nameof(SkiaMetalRenderTarget))).BeginRendering(); + backendTarget = new GRBackendRenderTarget(session.Size.Width, session.Size.Height, + new GRMtlTextureInfo(session.Texture)); - var surface = SKSurface.Create(_gpu._context!, backendTarget, - session.IsYFlipped ? GRSurfaceOrigin.BottomLeft : GRSurfaceOrigin.TopLeft, - SKColorType.Bgra8888); + surface = SKSurface.Create(_gpu._context!, backendTarget, + session.IsYFlipped ? GRSurfaceOrigin.BottomLeft : GRSurfaceOrigin.TopLeft, + SKColorType.Bgra8888); - return new SkiaMetalRenderSession(_gpu, surface, session, backendTarget); + var result = new SkiaMetalRenderSession(_gpu, surface, session, backendTarget); + success = true; + return result; + } + finally + { + if (!success) + { + surface?.Dispose(); + backendTarget?.Dispose(); + session?.Dispose(); + } + } } public PlatformRenderTargetState State => _target?.State ?? PlatformRenderTargetState.Disposed; @@ -117,12 +135,14 @@ internal class SkiaMetalGpu : ISkiaGpu private SKSurface? _surface; private IMetalPlatformSurfaceRenderingSession? _session; private GRBackendRenderTarget? _backendTarget; + private readonly AutoReleasePool _autoReleasePool; public SkiaMetalRenderSession(SkiaMetalGpu gpu, SKSurface surface, IMetalPlatformSurfaceRenderingSession session, GRBackendRenderTarget backendTarget) { + _autoReleasePool = new AutoReleasePool(); _gpu = gpu; _surface = surface; _session = session; @@ -141,6 +161,8 @@ internal class SkiaMetalGpu : ISkiaGpu _session = null; _backendTarget?.Dispose(); _backendTarget = null; + + _autoReleasePool.Dispose(); } public GRContext GrContext => _gpu._context!; diff --git a/src/Windows/Avalonia.Win32/.gitignore b/src/Windows/Avalonia.Win32/.gitignore deleted file mode 100644 index 7882fa6540..0000000000 --- a/src/Windows/Avalonia.Win32/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.Generated.cs diff --git a/src/Windows/Avalonia.Win32/Avalonia.Win32.csproj b/src/Windows/Avalonia.Win32/Avalonia.Win32.csproj index 29ccafd02e..ea834e26a6 100644 --- a/src/Windows/Avalonia.Win32/Avalonia.Win32.csproj +++ b/src/Windows/Avalonia.Win32/Avalonia.Win32.csproj @@ -3,7 +3,7 @@ $(AvsCurrentTargetFramework);$(AvsLegacyTargetFrameworks) true true - true + true @@ -18,10 +18,6 @@ - - - - @@ -29,6 +25,7 @@ + diff --git a/src/Windows/Avalonia.Win32/DataTransferToOleDataObjectWrapper.cs b/src/Windows/Avalonia.Win32/DataTransferToOleDataObjectWrapper.cs index f8f1784180..b5c7f193eb 100644 --- a/src/Windows/Avalonia.Win32/DataTransferToOleDataObjectWrapper.cs +++ b/src/Windows/Avalonia.Win32/DataTransferToOleDataObjectWrapper.cs @@ -193,6 +193,9 @@ internal class DataTransferToOleDataObjectWrapper(IDataTransfer dataTransfer) foreach (var dataFormat in DataTransfer.Formats) { + if (dataFormat.Kind == DataFormatKind.InProcess) + continue; + if (DataFormat.Bitmap.Equals(dataFormat)) { // We add extra formats for bitmaps diff --git a/src/Windows/Avalonia.Win32/Input/KeyInterop.cs b/src/Windows/Avalonia.Win32/Input/KeyInterop.cs index 834feb861e..f13694e4fb 100644 --- a/src/Windows/Avalonia.Win32/Input/KeyInterop.cs +++ b/src/Windows/Avalonia.Win32/Input/KeyInterop.cs @@ -493,6 +493,24 @@ namespace Avalonia.Win32.Input PhysicalKey.None; } + /// + /// Gets a key symbol from a Windows virtual-key using MapVirtualKey. + /// Unlike , this does not call ToUnicodeEx and is safe to use + /// during WM_SYSKEYDOWN/UP where ToUnicodeEx would corrupt keyboard state. + /// + /// The Windows virtual-key. + /// A key symbol, or null if none matched. + public static string? GetKeySymbolFromVirtualKey(int virtualKey) + { + var ch = MapVirtualKey((uint)virtualKey, (uint)MapVirtualKeyMapTypes.MAPVK_VK_TO_CHAR); + if (ch == 0) + return null; + + // Bit 31 is set for dead keys — strip it to get the base character. + var c = (char)(ch & 0x7FFFFFFF); + return KeySymbolHelper.IsAllowedAsciiKeySymbol(c) ? c.ToString() : null; + } + /// /// Gets a key symbol from a Windows virtual-key and key data. /// diff --git a/src/Windows/Avalonia.Win32/Win32StorageProvider.cs b/src/Windows/Avalonia.Win32/Win32StorageProvider.cs index a61af0de97..6519933de7 100644 --- a/src/Windows/Avalonia.Win32/Win32StorageProvider.cs +++ b/src/Windows/Avalonia.Win32/Win32StorageProvider.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.IO; using System.ComponentModel; using System.Runtime.InteropServices; +using System.Threading; using System.Threading.Tasks; using Avalonia.Controls.Utils; using Avalonia.Platform.Storage; @@ -96,7 +97,13 @@ namespace Avalonia.Win32 Func convert) where TStorageItem : IStorageItem { - return Task.Factory.StartNew(() => + // TODO13: verify that we're on the correct dispatcher, matching other platforms' implementations. + // We should then be able to remove the dedicated thread and simply use IFileDialog directly (needs to be reconfirmed). + + var tcs = new TaskCompletionSource<(IReadOnlyList, int)>( + TaskCreationOptions.RunContinuationsAsynchronously); + + var thread = new Thread(() => { IReadOnlyList result = []; try @@ -179,7 +186,8 @@ namespace Avalonia.Win32 if ((uint)showResult == (uint)UnmanagedMethods.HRESULT.E_CANCELLED) { - return (result, typeIndex); + tcs.SetResult((result, typeIndex)); + return; } else if ((uint)showResult != (uint)UnmanagedMethods.HRESULT.S_OK) { @@ -210,14 +218,23 @@ namespace Avalonia.Win32 result = [convert(singleResult)]; } - return (result, typeIndex); + tcs.SetResult((result, typeIndex)); } catch (COMException ex) { var message = new Win32Exception(ex.HResult).Message; - throw new COMException(message, ex); + tcs.SetException(new COMException(message, ex)); } - }, TaskCreationOptions.LongRunning); + catch (Exception ex) + { + tcs.SetException(ex); + } + }); + thread.SetApartmentState(ApartmentState.STA); + thread.IsBackground = true; + thread.Start(); + + return tcs.Task; } private static string? GetParsingName(IShellItem shellItem) diff --git a/src/Windows/Avalonia.Win32/WinRT/Composition/WinUiCompositorConnection.cs b/src/Windows/Avalonia.Win32/WinRT/Composition/WinUiCompositorConnection.cs index d4cdfcbe42..e98caae88c 100644 --- a/src/Windows/Avalonia.Win32/WinRT/Composition/WinUiCompositorConnection.cs +++ b/src/Windows/Avalonia.Win32/WinRT/Composition/WinUiCompositorConnection.cs @@ -127,7 +127,12 @@ internal class WinUiCompositorConnection : IRenderTimer, Win32.IWindowsSurfaceFa // Always schedule a commit so the current frame's work reaches DWM. ScheduleNextCommit(); if (_parent._stopped) + { _parent._wakeEvent.WaitOne(); + // Reset the expected commit callback time since we've paused + // the render loop due to app being idle + _commitDueAt = _st.Elapsed + TimeSpan.FromSeconds(1); + } } private void ScheduleNextCommit() diff --git a/src/Windows/Avalonia.Win32/WindowImpl.AppWndProc.cs b/src/Windows/Avalonia.Win32/WindowImpl.AppWndProc.cs index 82aaac226c..d9be50a967 100644 --- a/src/Windows/Avalonia.Win32/WindowImpl.AppWndProc.cs +++ b/src/Windows/Avalonia.Win32/WindowImpl.AppWndProc.cs @@ -799,39 +799,16 @@ namespace Avalonia.Win32 // A window without a caption (i.e. None and BorderOnly decorations) maximizes to the whole screen // by default. Adjust that to the screen's working area instead. var style = GetStyle(); - if (!style.HasAllFlags(WindowStyles.WS_CAPTION | WindowStyles.WS_THICKFRAME)) + if (!style.HasAllFlags(WindowStyles.WS_CAPTION | WindowStyles.WS_THICKFRAME) && + Screen.ScreenFromHwnd(Hwnd, MONITOR.MONITOR_DEFAULTTONEAREST) is { } screen) { - var screen = Screen.ScreenFromHwnd(Hwnd, MONITOR.MONITOR_DEFAULTTONEAREST); - if (screen?.WorkingArea is { } workingArea) - { - var x = workingArea.X; - var y = workingArea.Y; - var cx = workingArea.Width; - var cy = workingArea.Height; - - var adjuster = CreateWindowRectAdjuster(); - var borderThickness = new RECT(); - - var adjustedStyle = style & ~WindowStyles.WS_CAPTION; - - if (style.HasAllFlags(WindowStyles.WS_BORDER)) - adjustedStyle |= WindowStyles.WS_BORDER; - - if (style.HasAllFlags(WindowStyles.WS_CAPTION)) - adjustedStyle |= WindowStyles.WS_THICKFRAME; - - adjuster.Adjust(ref borderThickness, adjustedStyle, 0); - - x += borderThickness.left; - y += borderThickness.top; - cx += -borderThickness.left + borderThickness.right; - cy += -borderThickness.top + borderThickness.bottom; - - mmi.ptMaxPosition.X = x; - mmi.ptMaxPosition.Y = y; - mmi.ptMaxSize.X = cx; - mmi.ptMaxSize.Y = cy; - } + var maximizedRect = GetCaptionlessMaximizedRect(style, screen.WorkingArea); + // We aren't changing ptMaxPosition because its coordinates must always target the primary screen. + // We can't do that, since the work area might not be the same for all screens. + // Instead, only set the desired max size here. + // WM_WINDOWPOSCHANGING moves the window to the correct position. + mmi.ptMaxSize.X = maximizedRect.Width; + mmi.ptMaxSize.Y = maximizedRect.Height; } if (_minSize.Width > 0) @@ -862,6 +839,39 @@ namespace Avalonia.Win32 return IntPtr.Zero; } + case WindowsMessage.WM_WINDOWPOSCHANGING: + { + var pos = (WINDOWPOS*)lParam; + var style = GetStyle(); + var flags = (SetWindowPosFlags)pos->flags; + + // A window without a caption (i.e. None and BorderOnly decorations) maximizes to the whole screen + // by default. Adjust that to the screen's working area instead. + if (!style.HasAllFlags(WindowStyles.WS_CAPTION | WindowStyles.WS_THICKFRAME) && + style.HasAllFlags(WindowStyles.WS_MAXIMIZE) && + !_isFullScreenActive && + !flags.HasAllFlags(SetWindowPosFlags.SWP_NOMOVE | SetWindowPosFlags.SWP_NOSIZE)) + { + GetWindowPlacement(Hwnd, out var placement); + + // Prefer ScreenFromRect with the window's restored bounds. + // If the window was minimized, ScreenFromHwnd won't return the correct monitor at this point. + var screen = Screen.ScreenFromRect(placement.NormalPosition.ToPixelRect()) + ?? Screen.ScreenFromHwnd(Hwnd, MONITOR.MONITOR_DEFAULTTONEAREST); + + if (screen is not null) + { + var maximizedRect = GetCaptionlessMaximizedRect(style, screen.WorkingArea); + pos->x = maximizedRect.X; + pos->y = maximizedRect.Y; + pos->cx = maximizedRect.Width; + pos->cy = maximizedRect.Height; + return IntPtr.Zero; + } + } + break; + } + case WindowsMessage.WM_DISPLAYCHANGE: { Screen?.OnChanged(); @@ -996,6 +1006,38 @@ namespace Avalonia.Win32 return DefWindowProc(hWnd, msg, wParam, lParam); } + + /// + /// Gets the expected maximized rect for a window without a caption. + /// + private PixelRect GetCaptionlessMaximizedRect(WindowStyles style, PixelRect workingArea) + { + var x = workingArea.X; + var y = workingArea.Y; + var cx = workingArea.Width; + var cy = workingArea.Height; + + var adjuster = CreateWindowRectAdjuster(); + var borderThickness = new RECT(); + + var adjustedStyle = style & ~WindowStyles.WS_CAPTION; + + if (style.HasAllFlags(WindowStyles.WS_BORDER)) + adjustedStyle |= WindowStyles.WS_BORDER; + + if (style.HasAllFlags(WindowStyles.WS_CAPTION)) + adjustedStyle |= WindowStyles.WS_THICKFRAME; + + adjuster.Adjust(ref borderThickness, adjustedStyle, 0); + + x += borderThickness.left; + y += borderThickness.top; + cx += -borderThickness.left + borderThickness.right; + cy += -borderThickness.top + borderThickness.bottom; + + return new PixelRect(x, y, cx, cy); + } + internal bool IsOurWindow(IntPtr hwnd) { if (hwnd == IntPtr.Zero) @@ -1446,8 +1488,11 @@ namespace Avalonia.Win32 var physicalKey = KeyInterop.PhysicalKeyFromVirtualKey(virtualKey, keyData); // Avoid calling GetKeySymbol() for WM_SYSKEYDOWN/UP: - // it ultimately calls User32!ToUnicodeEx, which messes up the keyboard state in this case. - var keySymbol = useKeySymbol ? KeyInterop.GetKeySymbol(virtualKey, keyData) : null; + // it ultimately calls ToUnicodeEx, which corrupts keyboard state for system key events. + // Use MapVirtualKey-based fallback instead — it's layout-aware without touching keyboard state. + var keySymbol = useKeySymbol + ? KeyInterop.GetKeySymbol(virtualKey, keyData) + : KeyInterop.GetKeySymbolFromVirtualKey(virtualKey); if (key == Key.None && physicalKey == PhysicalKey.None && string.IsNullOrWhiteSpace(keySymbol)) return null; diff --git a/src/iOS/Avalonia.iOS/Clipboard/ClipboardImpl.cs b/src/iOS/Avalonia.iOS/Clipboard/ClipboardImpl.cs index 20722e6314..57ff3c9043 100644 --- a/src/iOS/Avalonia.iOS/Clipboard/ClipboardImpl.cs +++ b/src/iOS/Avalonia.iOS/Clipboard/ClipboardImpl.cs @@ -65,6 +65,9 @@ internal sealed class ClipboardImpl(UIPasteboard pasteboard) foreach (var dataFormat in dataTransferItem.Formats) { + if (dataFormat.Kind == DataFormatKind.InProcess) + continue; + var data = await TryGetFoundationDataAsync(dataTransferItem, dataFormat); if (data is null) continue; diff --git a/src/iOS/Avalonia.iOS/Storage/IOSStorageItem.cs b/src/iOS/Avalonia.iOS/Storage/IOSStorageItem.cs index 663b1fdd20..60360fa34d 100644 --- a/src/iOS/Avalonia.iOS/Storage/IOSStorageItem.cs +++ b/src/iOS/Avalonia.iOS/Storage/IOSStorageItem.cs @@ -299,7 +299,7 @@ internal sealed class IOSStorageFolder : IOSStorageItem, IStorageBookmarkFolder var path = System.IO.Path.Combine(FilePath, name); NSFileAttributes? attributes = null; - if (NSFileManager.DefaultManager.CreateDirectory(path, false, attributes, out var error)) + if (NSFileManager.DefaultManager.CreateDirectory(path, true, attributes, out var error)) { return Task.FromResult(new IOSStorageFolder(new NSUrl(path, true), SecurityScopedAncestorUrl)); } diff --git a/tests/Avalonia.Base.UnitTests/Data/Core/BindingExpressionTests.Mode.cs b/tests/Avalonia.Base.UnitTests/Data/Core/BindingExpressionTests.Mode.cs index cf80b86386..c933eb5316 100644 --- a/tests/Avalonia.Base.UnitTests/Data/Core/BindingExpressionTests.Mode.cs +++ b/tests/Avalonia.Base.UnitTests/Data/Core/BindingExpressionTests.Mode.cs @@ -1,3 +1,5 @@ +using System.Reflection; +using System.Runtime.InteropServices; using Avalonia.Data; using Xunit; @@ -201,4 +203,23 @@ public partial class BindingExpressionTests Assert.Equal("foo", data.StringValue); } + + [Fact] + public void OneWay_Binding_Updates_Target_When_Changes_And_Source_Raises_PropertyChanged() + { + var data = new ViewModel { StringValue = "foo" }; + var target = CreateTarget( + x => x.StringValue, + dataContext: data, + mode: BindingMode.OneWay); + + Assert.Equal("foo", target.String); + + target.SetCurrentValue(TargetClass.StringProperty, "bar"); + Assert.Equal("bar", target.String); + + data.RaisePropertyChanged(nameof(data.StringValue)); + + Assert.Equal("foo", target.String); + } } diff --git a/tests/Avalonia.Base.UnitTests/DispatcherTests.cs b/tests/Avalonia.Base.UnitTests/DispatcherTests.cs index ffb94cc5d6..2efb648f4d 100644 --- a/tests/Avalonia.Base.UnitTests/DispatcherTests.cs +++ b/tests/Avalonia.Base.UnitTests/DispatcherTests.cs @@ -6,6 +6,7 @@ using System.Globalization; using System.Linq; using System.Threading; using System.Threading.Tasks; +using Avalonia.Controls; using Avalonia.Controls.Platform; using Avalonia.Threading; using Avalonia.UnitTests; @@ -600,6 +601,19 @@ public partial class DispatcherTests public AsyncLocal AsyncLocalField { get; set; } = new AsyncLocal(); } + private sealed class AsyncLocalMeasureControl(Func getValue, Action setValue) : Control + { + public bool RecordMeasure { get; set; } + + protected override Size MeasureOverride(Size availableSize) + { + if (RecordMeasure) + setValue(getValue()); + + return new Size(1, 1); + } + } + [Fact] public async Task ExecutionContextIsPreservedInDispatcherInvokeAsync() { @@ -697,6 +711,76 @@ public partial class DispatcherTests Assert.Null(test); } + [Fact] + public void MediaContextRenderSchedulingDoesNotCaptureAmbientExecutionContext() + { + var impl = new SimpleDispatcherWithBackgroundProcessingImpl(); + using var services = new DispatcherServices(impl); + Dispatcher.InitializeUIThreadDispatcher(impl); + + var testObject = new AsyncLocalTestClass(); + string? test = "Not measured"; + var control = new AsyncLocalMeasureControl(() => testObject.AsyncLocalField.Value, value => test = value); + var root = new TestRoot { Child = control }; + + root.ExecuteInitialLayoutPass(); + control.RecordMeasure = true; + + Dispatcher.UIThread.Post(() => + { + testObject.AsyncLocalField.Value = "Initial Value"; + control.InvalidateMeasure(); + testObject.AsyncLocalField.Value = null; + }); + + Assert.True(impl.AskedForSignal); + impl.ExecuteSignal(); + + Assert.Null(test); + } + + [Fact] + public void MediaContextRenderSchedulingAllowsAlreadySuppressedExecutionContextFlow() + { + var impl = new SimpleDispatcherWithBackgroundProcessingImpl(); + using var services = new DispatcherServices(impl); + Dispatcher.InitializeUIThreadDispatcher(impl); + + var testObject = new AsyncLocalTestClass(); + string? test = "Not measured"; + Exception? schedulingException = null; + var control = new AsyncLocalMeasureControl(() => testObject.AsyncLocalField.Value, value => test = value); + var root = new TestRoot { Child = control }; + + root.ExecuteInitialLayoutPass(); + control.RecordMeasure = true; + + Dispatcher.UIThread.Post(() => + { + testObject.AsyncLocalField.Value = "Initial Value"; + + try + { + using (ExecutionContext.SuppressFlow()) + { + control.InvalidateMeasure(); + } + } + catch (Exception e) + { + schedulingException = e; + } + + testObject.AsyncLocalField.Value = null; + }); + + Assert.True(impl.AskedForSignal); + impl.ExecuteSignal(); + + Assert.Null(schedulingException); + Assert.Null(test); + } + [Fact] public async Task ExecutionContextCultureInfoIsPreservedInDispatcherInvokeAsync() { diff --git a/tests/Avalonia.Base.UnitTests/Input/AccessKeyHandlerTests.cs b/tests/Avalonia.Base.UnitTests/Input/AccessKeyHandlerTests.cs index 9443e22855..166b777ba1 100644 --- a/tests/Avalonia.Base.UnitTests/Input/AccessKeyHandlerTests.cs +++ b/tests/Avalonia.Base.UnitTests/Input/AccessKeyHandlerTests.cs @@ -233,6 +233,33 @@ namespace Avalonia.Base.UnitTests.Input } } + [Fact] + public void Should_Raise_AccessKey_For_System_Key_Event_With_KeySymbol() + { + // Regression test for #20961: on Windows, WM_SYSKEYDOWN (Alt+key) previously + // left KeySymbol null, breaking access keys. MapVirtualKey now provides KeySymbol. + using (UnitTestApplication.Start(TestServices.RealFocus)) + { + var button = new Button(); + var root = new TestRoot(button); + var target = new AccessKeyHandler(); + var raised = 0; + + KeyboardDevice.Instance?.SetFocusedElement(button, NavigationMethod.Unspecified, KeyModifiers.None); + + target.SetOwner(root); + target.Register("F", button); + button.AddHandler(AccessKeyHandler.AccessKeyEvent, (s, e) => ++raised); + + KeyDown(root, Key.LeftAlt); + Assert.Equal(0, raised); + + // MapVirtualKey provides lowercase KeySymbol for system key events + KeyDown(root, Key.F, "f", KeyModifiers.Alt); + Assert.Equal(1, raised); + } + } + [Fact] public void Should_Open_MainMenu_On_Alt_KeyUp() { diff --git a/tests/Avalonia.Base.UnitTests/Input/DataFormatTests.cs b/tests/Avalonia.Base.UnitTests/Input/DataFormatTests.cs new file mode 100644 index 0000000000..5fde67f5a1 --- /dev/null +++ b/tests/Avalonia.Base.UnitTests/Input/DataFormatTests.cs @@ -0,0 +1,120 @@ +using System; +using Avalonia.Input; +using Xunit; + +namespace Avalonia.Base.UnitTests.Input; + +public sealed class DataFormatTests +{ + [Fact] + public void CreateInProcessFormat_Returns_Format_With_InProcess_Kind() + { + var format = DataFormat.CreateInProcessFormat("my-format"); + + Assert.Equal(DataFormatKind.InProcess, format.Kind); + } + + [Fact] + public void CreateInProcessFormat_Returns_Format_With_Correct_Identifier() + { + var format = DataFormat.CreateInProcessFormat("my-format"); + + Assert.Equal("my-format", format.Identifier); + } + + [Fact] + public void CreateInProcessFormat_Throws_On_Null_Identifier() + { + Assert.Throws(() => DataFormat.CreateInProcessFormat(null!)); + } + + [Fact] + public void CreateInProcessFormat_Throws_On_Empty_Identifier() + { + Assert.Throws(() => DataFormat.CreateInProcessFormat(string.Empty)); + } + + [Fact] + public void CreateInProcessFormat_Allows_Non_ASCII_Identifiers() + { + var format = DataFormat.CreateInProcessFormat("日本語フォーマット"); + + Assert.Equal("日本語フォーマット", format.Identifier); + } + + [Fact] + public void ToSystemName_Throws_For_InProcess() + { + var format = DataFormat.CreateInProcessFormat("test"); + + Assert.Throws(() => format.ToSystemName("prefix.")); + } + + [Fact] + public void InProcess_Format_Equality_Same_Identifier() + { + var format1 = DataFormat.CreateInProcessFormat("my-format"); + var format2 = DataFormat.CreateInProcessFormat("my-format"); + + Assert.Equal(format1, format2); + Assert.True(format1 == format2); + } + + [Fact] + public void InProcess_Format_Inequality_Different_Identifier() + { + var format1 = DataFormat.CreateInProcessFormat("format-a"); + var format2 = DataFormat.CreateInProcessFormat("format-b"); + + Assert.NotEqual(format1, format2); + Assert.True(format1 != format2); + } + + [Fact] + public void InProcess_Format_Inequality_Different_Kind_Same_Identifier() + { + var inProcess = DataFormat.CreateInProcessFormat("test-format"); + var application = DataFormat.CreateStringApplicationFormat("test-format"); + + Assert.NotEqual(inProcess, application); + } + + [Fact] + public void TryGetRaw_With_Mismatched_Format_Returns_Null_For_Single_Format_Item() + { + var item = DataTransferItem.CreateText("hello"); + + var result = item.TryGetRaw(DataFormat.Bitmap); + + Assert.Null(result); + } + + [Fact] + public void InProcess_Format_Works_With_DataTransferItem_Set_And_Get() + { + var format = DataFormat.CreateInProcessFormat("my-inprocess"); + var item = new DataTransferItem(); + item.Set(format, "hello"); + + var value = item.TryGetValue(format); + + Assert.Equal("hello", value); + } + + [Fact] + public void InProcess_Format_Coexists_With_Other_Formats_In_DataTransfer() + { + var inProcessFormat = DataFormat.CreateInProcessFormat("my-inprocess"); + var item = new DataTransferItem(); + item.SetText("plain text"); + item.Set(inProcessFormat, "in-process data"); + + var dataTransfer = new DataTransfer(); + dataTransfer.Add(item); + + Assert.Contains(DataFormat.Text, dataTransfer.Formats); + Assert.Contains(inProcessFormat, (System.Collections.Generic.IEnumerable)dataTransfer.Formats); + Assert.Equal("plain text", item.TryGetValue(DataFormat.Text)); + Assert.Equal("in-process data", item.TryGetValue(inProcessFormat)); + } +} diff --git a/tests/Avalonia.Base.UnitTests/Input/InputElement_Focus.cs b/tests/Avalonia.Base.UnitTests/Input/InputElement_Focus.cs index 9e835b2427..580c80e79f 100644 --- a/tests/Avalonia.Base.UnitTests/Input/InputElement_Focus.cs +++ b/tests/Avalonia.Base.UnitTests/Input/InputElement_Focus.cs @@ -703,6 +703,41 @@ namespace Avalonia.Base.UnitTests.Input Assert.Same(innerButton, focusManager.GetFocusedElement()); } + // https://github.com/AvaloniaUI/Avalonia/issues/13134 + [Fact] + public void SetFocusScope_On_Non_Focusable_Scope_Changes_Scope() + { + using var app = UnitTestApplication.Start(TestServices.RealFocus); + + Button outerButton; + TestFocusScope innerScope; + var root = new TestRoot + { + Child = new StackPanel + { + Focusable = false, + Children = + { + (innerScope = new TestFocusScope()), + (outerButton = new Button()) + } + } + }; + + outerButton.Focus(); + + var focusManager = Assert.IsType(root.FocusManager); + Assert.Same(outerButton, focusManager.GetFocusedElement()); + + // Switch to a scope that has no previously focused element and isn't focusable itself. + // TestFocusScope is a Panel (Focusable = false) + IFocusScope. + focusManager.SetFocusScope(innerScope); + + // Focus must be cleared: the scope is not focusable and has no prior focused element. + // Before the fix this was a no-op and outerButton would still be reported as focused. + Assert.Null(focusManager.GetFocusedElement()); + } + [Fact] public void Can_Get_First_Focusable_Element() { diff --git a/tests/Avalonia.Base.UnitTests/Input/InputExtensionsTests.cs b/tests/Avalonia.Base.UnitTests/Input/InputExtensionsTests.cs new file mode 100644 index 0000000000..61cf8b747b --- /dev/null +++ b/tests/Avalonia.Base.UnitTests/Input/InputExtensionsTests.cs @@ -0,0 +1,49 @@ +using Avalonia.Controls; +using Avalonia.Input; +using Avalonia.Layout; +using Avalonia.Media; +using Avalonia.UnitTests; +using Xunit; + +namespace Avalonia.Base.UnitTests.Input; + +public class InputExtensionsTests +{ + [Fact] + public void InputHitTest_Should_Use_Coordinates_Relative_To_The_Subtree_Root() + { + Border target; + using var services = new CompositorTestServices(new Size(200, 200)) + { + TopLevel = + { + Content = new StackPanel + { + Background = Brushes.White, + Children = + { + new Border + { + Width = 100, + Height = 200, + Background = Brushes.Red, + }, + (target = new Border + { + Width = 100, + Height = 200, + Background = Brushes.Green, + }) + }, + Orientation = Orientation.Horizontal, + } + } + }; + + services.RunJobs(); + + var result = target.InputHitTest(new Point(50, 50), enabledElementsOnly: false); + + Assert.Same(target, result); + } +} diff --git a/tests/Avalonia.Base.UnitTests/Input/MouseDeviceTests.cs b/tests/Avalonia.Base.UnitTests/Input/MouseDeviceTests.cs index 1ec6ec2be5..f8bb8c3ed2 100644 --- a/tests/Avalonia.Base.UnitTests/Input/MouseDeviceTests.cs +++ b/tests/Avalonia.Base.UnitTests/Input/MouseDeviceTests.cs @@ -1,4 +1,6 @@ -using Avalonia.Controls; +using System; +using Avalonia.Controls; +using Avalonia.Headless; using Avalonia.Input; using Avalonia.Input.Raw; using Avalonia.Media; @@ -128,6 +130,74 @@ namespace Avalonia.Base.UnitTests.Input Assert.Equal(new Point(1, 11), result); } + private IDisposable SetupCrossTreePositionRequest(PixelPoint topLevelPosition, out PointerEventArgs pointerEvent, out Control elementA, out Control elementB) + { + var app = UnitTestApplication.Start(new TestServices( + inputManager: new InputManager(), + renderInterface: new HeadlessPlatformRenderInterface())); + + var renderer = new Mock(); + var deviceMock = CreatePointerDeviceMock(); + var impl1 = CreateTopLevelImplMock(); + // Mocked position: topLevelPosition + impl1.Setup(w => w.PointToScreen(default)).Returns(p => (PixelPoint.FromPoint(p, 1) + topLevelPosition)); + + elementA = new Border(); + PointerEventArgs? moveEventArgs = null; + + elementA.PointerMoved += (s, e) => moveEventArgs = e; + var root1 = CreateInputRoot(impl1.Object, elementA, renderer.Object); + + SetMove(deviceMock, root1.InputRoot, elementA); + impl1.Object.Input!(CreateRawPointerMovedArgs(deviceMock.Object, root1)); + + Assert.NotNull(moveEventArgs); + pointerEvent = moveEventArgs; + + var impl2 = CreateTopLevelImplMock(); + // Mocked position: topLevelPosition * 2 + impl2.Setup(w => w.PointToClient(default)).Returns(p => (p - topLevelPosition - topLevelPosition).ToPoint(1)); + + elementB = new Border(); + var root2 = CreateInputRoot(impl2.Object, elementB, renderer.Object); + + return app; + } + + [Fact] + public void GetPosition_Should_Support_Cross_Tree_Requests() + { + var topLevelOffset = new PixelPoint(5, 0); + using (SetupCrossTreePositionRequest(topLevelOffset, out var pointerEvent, out _, out var elementB)) + { + Assert.Equal(topLevelOffset.ToPoint(1), pointerEvent.GetPosition(elementB)); + } + } + + [Fact] + public void GetPosition_Should_Return_Default_When_Cross_Tree_Source_Closed() + { + var topLevelOffset = new PixelPoint(5, 0); + using (SetupCrossTreePositionRequest(topLevelOffset, out var pointerEvent, out var elementA, out var elementB)) + { + ((PresentationSource)elementA.PresentationSource!).Dispose(); + + Assert.Equal(default, pointerEvent.GetPosition(elementB)); + } + } + + [Fact] + public void GetPosition_Should_Return_Default_When_Cross_Tree_Target_Closed() + { + var topLevelOffset = new PixelPoint(5, 0); + using (SetupCrossTreePositionRequest(topLevelOffset, out var pointerEvent, out _, out var elementB)) + { + ((PresentationSource)elementB.PresentationSource!).Dispose(); + + Assert.Equal(default, pointerEvent.GetPosition(elementB)); + } + } + [Fact] public void Mouse_Pointer_Should_Set_Focus_On_Pointer_Pressed() { diff --git a/tests/Avalonia.Base.UnitTests/Input/TouchDeviceTests.cs b/tests/Avalonia.Base.UnitTests/Input/TouchDeviceTests.cs index 600856c643..58725256b6 100644 --- a/tests/Avalonia.Base.UnitTests/Input/TouchDeviceTests.cs +++ b/tests/Avalonia.Base.UnitTests/Input/TouchDeviceTests.cs @@ -254,7 +254,7 @@ namespace Avalonia.Input.UnitTests .Bind().ToConstant(iSettingsMock.Object); return unitTestApp; } - + private static void SendXTouchContactsWithIds(IInputManager inputManager, TouchDevice device, IInputRoot root, RawPointerEventType type, params long[] touchPointIds) { for (int i = 0; i < touchPointIds.Length; i++) diff --git a/tests/Avalonia.Base.UnitTests/Layout/FullLayoutTests.cs b/tests/Avalonia.Base.UnitTests/Layout/FullLayoutTests.cs index 4922fbe37b..2daedca80c 100644 --- a/tests/Avalonia.Base.UnitTests/Layout/FullLayoutTests.cs +++ b/tests/Avalonia.Base.UnitTests/Layout/FullLayoutTests.cs @@ -86,8 +86,8 @@ namespace Avalonia.Base.UnitTests.Layout Assert.Equal(new Point(300, 200), Position(scrollViewer)); Assert.Equal(new Size(400, 400), textBlock.Bounds.Size); - var scrollBars = scrollViewer.GetTemplateChildren().OfType().ToList(); - var presenters = scrollViewer.GetTemplateChildren().OfType().ToList(); + var scrollBars = scrollViewer.GetTemplateDescendants().OfType().ToList(); + var presenters = scrollViewer.GetTemplateDescendants().OfType().ToList(); Assert.Equal(2, scrollBars.Count); Assert.Single(presenters); diff --git a/tests/Avalonia.Base.UnitTests/Media/TextFormatting/HarfbuzzTextShaperTests.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/HarfbuzzTextShaperTests.cs index 6467d9a13f..0babde2ed5 100644 --- a/tests/Avalonia.Base.UnitTests/Media/TextFormatting/HarfbuzzTextShaperTests.cs +++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/HarfbuzzTextShaperTests.cs @@ -100,6 +100,29 @@ public class HarfBuzzTextShaperTests } } + [Fact] + public void ShapeText_WithSlicedMemory_ClusterValuesAreSliceRelative() + { + using (UnitTestApplication.Start(Services)) + { + var fullString = new string('A', 1000) + "Hello" + new string('B', 1000); + var sliced = fullString.AsMemory().Slice(1000, 5); + + var options = CreateTextShaperOptions(); + + var result = _shaper.ShapeText(sliced, options); + + Assert.NotNull(result); + Assert.Equal(5, result.Length); + + for (var i = 0; i < result.Length; i++) + { + Assert.True(result[i].GlyphCluster >= 0 && result[i].GlyphCluster < 5, + $"Glyph cluster at index {i} was {result[i].GlyphCluster}, expected a value in [0, 5)."); + } + } + } + private TextShaperOptions CreateTextShaperOptions( sbyte bidiLevel = 0, double letterSpacing = 0, diff --git a/tests/Avalonia.Base.UnitTests/Rendering/CompositorLifetimeTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/CompositorLifetimeTests.cs new file mode 100644 index 0000000000..03c84e664a --- /dev/null +++ b/tests/Avalonia.Base.UnitTests/Rendering/CompositorLifetimeTests.cs @@ -0,0 +1,36 @@ +using Avalonia.Rendering.Composition; +using Avalonia.UnitTests; +using Avalonia.VisualTree; +using Xunit; + +namespace Avalonia.Base.UnitTests.Rendering; + +public class CompositorLifetimeTests : CompositorTestsBase +{ + [Fact] + public void InvalidateVisual_Does_Not_Update_RenderingTarget_When_Rendering_Stopped() + { + using var services = new CompositorTestServices(new Size(200, 200)); + + var presentationSource = services.TopLevel.GetPresentationSource(); + Assert.NotNull(presentationSource); + + var compositionTarget = ((CompositingRenderer)presentationSource.Renderer).CompositionTarget; + Assert.True(compositionTarget.IsEnabled); + Assert.Equal(new PixelSize(200, 200), compositionTarget.PixelSize); + + // Stop rendering and invalidate a visual: this should not result in an update + services.TopLevel.StopRendering(); + ((CompositorTestServices.TopLevelImpl)services.TopLevel.PlatformImpl!).ClientSize = new Size(300, 300); + services.TopLevel.InvalidateVisual(); + services.RunJobs(); + + Assert.Equal(new PixelSize(200, 200), compositionTarget.PixelSize); + + // Check that restarting rendering re-queues the pending invalidation + services.TopLevel.StartRendering(); + services.RunJobs(); + + Assert.Equal(new PixelSize(300, 300), compositionTarget.PixelSize); + } +} diff --git a/tests/Avalonia.Benchmarks/Text/TextRunCacheBenchmark.cs b/tests/Avalonia.Benchmarks/Text/TextRunCacheBenchmark.cs new file mode 100644 index 0000000000..650c919847 --- /dev/null +++ b/tests/Avalonia.Benchmarks/Text/TextRunCacheBenchmark.cs @@ -0,0 +1,144 @@ +using System; +using System.Linq; +using Avalonia.Media; +using Avalonia.Media.TextFormatting; +using Avalonia.UnitTests; +using BenchmarkDotNet.Attributes; + +namespace Avalonia.Benchmarks.Text; + +[MemoryDiagnoser] +[MinIterationTime(150)] +[MaxWarmupCount(15)] +public class TextRunCacheBenchmark : IDisposable +{ + private readonly IDisposable _app; + + private const string ShortText = "The quick brown fox jumps over the lazy dog."; + + private const string LongText = + "Though, the objectives of the development of the prominent landmarks can be neglected in most cases, " + + "it should be realized that after the completion of the strategic decision gives rise to " + + "The Expertise of Regular Program. A number of key issues arise from the belief that the explicit " + + "examination of strategic management should correlate with the conceptual design. " + + "By all means, the unification of the reliably developed techniques indicates the importance of " + + "the ultimate advantage of episodic skill over alternate practices."; + + public TextRunCacheBenchmark() + { + _app = UnitTestApplication.Start(TestServices.StyledWindow); + } + + [Params(5, 20)] + public int Iterations { get; set; } + + [Benchmark(Baseline = true)] + public void LayoutWithoutCache_Short() + { + for (var i = 0; i < Iterations; i++) + { + using var layout = new TextLayout(ShortText, Typeface.Default, 12d, Brushes.Black, + maxWidth: 200, textWrapping: TextWrapping.WrapWithOverflow); + } + } + + [Benchmark] + public void LayoutWithCache_Short() + { + using var cache = new TextRunCache(); + + for (var i = 0; i < Iterations; i++) + { + using var layout = new TextLayout(ShortText, Typeface.Default, 12d, Brushes.Black, + maxWidth: 200, textWrapping: TextWrapping.WrapWithOverflow, textRunCache: cache); + } + } + + [Benchmark] + public void LayoutWithoutCache_Long() + { + for (var i = 0; i < Iterations; i++) + { + using var layout = new TextLayout(LongText, Typeface.Default, 12d, Brushes.Black, + maxWidth: 300, textWrapping: TextWrapping.WrapWithOverflow); + } + } + + [Benchmark] + public void LayoutWithCache_Long() + { + using var cache = new TextRunCache(); + + for (var i = 0; i < Iterations; i++) + { + using var layout = new TextLayout(LongText, Typeface.Default, 12d, Brushes.Black, + maxWidth: 300, textWrapping: TextWrapping.WrapWithOverflow, textRunCache: cache); + } + } + + [Benchmark] + public void LayoutWithoutCache_VaryingWidth() + { + for (var i = 0; i < Iterations; i++) + { + var width = 200 + i * 10; + + using var layout = new TextLayout(LongText, Typeface.Default, 12d, Brushes.Black, + maxWidth: width, textWrapping: TextWrapping.WrapWithOverflow); + } + } + + [Benchmark] + public void LayoutWithCache_VaryingWidth() + { + using var cache = new TextRunCache(); + + for (var i = 0; i < Iterations; i++) + { + var width = 200 + i * 10; + + using var layout = new TextLayout(LongText, Typeface.Default, 12d, Brushes.Black, + maxWidth: width, textWrapping: TextWrapping.WrapWithOverflow, textRunCache: cache); + } + } + + /// + /// Benchmarks the single-entry fast path: a simple single-paragraph text + /// that results in only one cache entry (the common case for TextBlock). + /// + [Benchmark] + public void LayoutWithCache_SingleEntry_Short() + { + using var cache = new TextRunCache(); + + for (var i = 0; i < Iterations; i++) + { + // NoWrap + single paragraph = single cache entry at index 0. + using var layout = new TextLayout(ShortText, Typeface.Default, 12d, Brushes.Black, + maxWidth: double.PositiveInfinity, textWrapping: TextWrapping.NoWrap, textRunCache: cache); + } + } + + /// + /// Benchmarks the single-entry fast path with invalidate/re-populate cycle, + /// verifying that the inline store is reused without dictionary allocation. + /// + [Benchmark] + public void LayoutWithCache_SingleEntry_InvalidateRepopulate() + { + using var cache = new TextRunCache(); + + for (var i = 0; i < Iterations; i++) + { + cache.Invalidate(); + + using var layout = new TextLayout(ShortText, Typeface.Default, 12d, Brushes.Black, + maxWidth: double.PositiveInfinity, textWrapping: TextWrapping.NoWrap, textRunCache: cache); + } + } + + public void Dispose() + { + _app?.Dispose(); + } +} diff --git a/tests/Avalonia.Controls.UnitTests/AutoCompleteBoxTests.cs b/tests/Avalonia.Controls.UnitTests/AutoCompleteBoxTests.cs index 26ece37acf..4232624fad 100644 --- a/tests/Avalonia.Controls.UnitTests/AutoCompleteBoxTests.cs +++ b/tests/Avalonia.Controls.UnitTests/AutoCompleteBoxTests.cs @@ -8,7 +8,9 @@ using Avalonia.Threading; using Avalonia.UnitTests; using Xunit; using System.Collections.ObjectModel; +using System.ComponentModel; using System.Reactive.Subjects; +using System.Runtime.CompilerServices; using Avalonia.Headless; using Avalonia.Harfbuzz; using Avalonia.Input; @@ -1233,7 +1235,7 @@ namespace Avalonia.Controls.UnitTests } private TextBox GetTextBox(AutoCompleteBox control) { - return control.GetTemplateChildren() + return control.GetTemplateDescendants() .OfType() .First(); } @@ -1296,5 +1298,101 @@ namespace Avalonia.Controls.UnitTests Assert.Equal(Media.Brushes.Green, control.PlaceholderForeground); } } + + [Fact] + public void Bound_Text_Will_Update_Always() + { + using (UnitTestApplication.Start(TestServices.StyledWindow)) + { + var viewModel = new AutoCompleteBoxViewModel(); + + var control = CreateControl(); + + // Setup the binding + control[!AutoCompleteBox.TextProperty] = CompiledBinding.Create + (vm => vm.TextValue, viewModel, mode: BindingMode.TwoWay); + + // Ensure the bound text matches "foo" + Assert.Equal("foo", control.Text); + + // Change the view model value several times and ensure the bound text is updated + for (var i = 0; i < 10; i++) + { + viewModel.UpdateTextValueTwice(); + Dispatcher.UIThread.RunJobs(null, TestContext.Current.CancellationToken); + Assert.Equal("bar", control.Text); + } + } + } + + [Fact] + public void Bound_Text_Will_Update_From_Bar_To_Bar_Via_Foo() + { + using (UnitTestApplication.Start(TestServices.StyledWindow)) + { + var viewModel = new AutoCompleteBoxViewModel(); + viewModel.TextValue = "bar"; + + var control = CreateControl(); + control.ApplyTemplate(); + + // Setup the binding + control[!AutoCompleteBox.TextProperty] = CompiledBinding.Create + (vm => vm.TextValue, viewModel, mode: BindingMode.TwoWay); + + Assert.Equal("bar", control.Text); + + int textChangedCount = 0; + control.TextChanged += (s, e) => textChangedCount++; + + // Change the view model value "bar" -> "foo" -> "bar" + viewModel.UpdateTextValueTwice(); + + // Programmatic TextProperty updates should synchronously raise TextChanged, and + // OnTextBoxTextChanged is suppressed for the corresponding TextBox.Text updates. + Assert.Equal("bar", control.Text); + Assert.Equal(2, textChangedCount); + + Dispatcher.UIThread.RunJobs(null, TestContext.Current.CancellationToken); + + Assert.Equal("bar", control.Text); + Assert.Equal(2, textChangedCount); + } + } + } + + public class AutoCompleteBoxViewModel : INotifyPropertyChanged + { + public AutoCompleteBoxViewModel() + { + TextValue = "foo"; + } + + public event PropertyChangedEventHandler? PropertyChanged; + + public string? TextValue + { + get; + set => SetField(ref field, value); + } + + public void UpdateTextValueTwice() + { + TextValue = "foo"; + TextValue = "bar"; + } + + protected virtual void OnPropertyChanged([CallerMemberName] string? propertyName = null) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + protected bool SetField(ref T field, T value, [CallerMemberName] string? propertyName = null) + { + if (EqualityComparer.Default.Equals(field, value)) return false; + field = value; + OnPropertyChanged(propertyName); + return true; + } } } diff --git a/tests/Avalonia.Controls.UnitTests/ButtonTests.cs b/tests/Avalonia.Controls.UnitTests/ButtonTests.cs index 0ca18d5585..4de12d545e 100644 --- a/tests/Avalonia.Controls.UnitTests/ButtonTests.cs +++ b/tests/Avalonia.Controls.UnitTests/ButtonTests.cs @@ -239,7 +239,7 @@ namespace Avalonia.Controls.UnitTests bool clicked = false; Dispatcher.UIThread.RunJobs(null, TestContext.Current.CancellationToken); - + target.Click += (s, e) => clicked = true; RaisePointerEntered(target); @@ -295,9 +295,9 @@ namespace Avalonia.Controls.UnitTests var raised = 0; target.Click += (s, e) => ++raised; - + target.RaiseEvent(new AccessKeyEventArgs("b", false)); - + Assert.Equal(1, raised); } @@ -357,7 +357,7 @@ namespace Avalonia.Controls.UnitTests RaiseAccessKey(root, accessKey, accessKeySymbol); Assert.Equal(1, raised); - + static FuncControlTemplate CreateTemplate() { return new FuncControlTemplate((x, scope) => @@ -458,7 +458,7 @@ namespace Avalonia.Controls.UnitTests Assert.Equal(2, raised); } } - + [Fact] public void Button_IsDefault_Should_Not_Work_When_Button_Is_Not_Effectively_Visible() { @@ -472,7 +472,7 @@ namespace Avalonia.Controls.UnitTests window.Show(); target.Click += (s, e) => ++raised; - + target.IsDefault = true; panel.IsVisible = false; window.RaiseEvent(CreateKeyDownEvent(Key.Enter)); @@ -513,7 +513,7 @@ namespace Avalonia.Controls.UnitTests Assert.Equal(2, raised); } } - + [Fact] public void Button_IsCancel_Should_Not_Work_When_Button_Is_Not_Effectively_Visible() { @@ -527,7 +527,7 @@ namespace Avalonia.Controls.UnitTests window.Show(); target.Click += (s, e) => ++raised; - + target.IsCancel = true; panel.IsVisible = false; window.RaiseEvent(CreateKeyDownEvent(Key.Escape)); @@ -564,7 +564,7 @@ namespace Avalonia.Controls.UnitTests } [Fact] - void Should_Not_Fire_Click_Event_On_Space_Key_When_It_Is_Not_Focus() + public void Should_Not_Fire_Click_Event_On_Space_Key_When_It_Is_Not_Focus() { using (UnitTestApplication.Start(TestServices.StyledWindow)) { @@ -586,6 +586,51 @@ namespace Avalonia.Controls.UnitTests } } + [Fact] + public void Button_Unpressed_When_Disabled() + { + using (UnitTestApplication.Start(TestServices.StyledWindow)) + { + var target = new Button() + { + // Disabling a control implies focus loss, and focus loss + // has its own code path to un-press the button. So we have + // to avoid hitting that path to get an accurate result. + Focusable = false, + }; + + var window = new Window { Content = target }; + window.Show(); + + RaisePointerPressed(target, 1, MouseButton.Left, new Point(50, 50)); + + Assert.True(target.IsPressed); + Assert.False(target.IsFocused); + target.IsEnabled = false; + Assert.False(target.IsPressed); + } + } + + [Fact] + public void Button_Unpressed_When_Focus_Lost() + { + using (UnitTestApplication.Start(TestServices.FocusableWindow)) + { + var target = new Button(); + var other = new Button(); + + var window = new Window { Content = new StackPanel { Children = { target, other } } }; + window.Show(); + + RaisePointerPressed(target, 1, MouseButton.Left, new Point(50, 50)); + + Assert.True(target.IsPressed); + Assert.True(target.IsFocused); + Assert.True(other.Focus()); + Assert.False(target.IsPressed); + } + } + private KeyEventArgs CreateKeyDownEvent(Key key, Interactive? source = null) { return new KeyEventArgs { RoutedEvent = InputElement.KeyDownEvent, Key = key, Source = source }; diff --git a/tests/Avalonia.Controls.UnitTests/CalendarDatePickerTests.cs b/tests/Avalonia.Controls.UnitTests/CalendarDatePickerTests.cs index d97a9729fb..b620601f71 100644 --- a/tests/Avalonia.Controls.UnitTests/CalendarDatePickerTests.cs +++ b/tests/Avalonia.Controls.UnitTests/CalendarDatePickerTests.cs @@ -155,7 +155,7 @@ namespace Avalonia.Controls.UnitTests private TextBox GetTextBox(CalendarDatePicker control) { - return control.GetTemplateChildren() + return control.GetTemplateDescendants() .OfType() .First(); } diff --git a/tests/Avalonia.Controls.UnitTests/ComboBoxTests.cs b/tests/Avalonia.Controls.UnitTests/ComboBoxTests.cs index 578484557f..b3212ed0f7 100644 --- a/tests/Avalonia.Controls.UnitTests/ComboBoxTests.cs +++ b/tests/Avalonia.Controls.UnitTests/ComboBoxTests.cs @@ -834,7 +834,7 @@ namespace Avalonia.Controls.UnitTests target.ApplyTemplate(); target.Presenter!.ApplyTemplate(); - var containerPanel = target.GetTemplateChildren().OfType().FirstOrDefault(x => x.Name == "container"); + var containerPanel = target.GetTemplateDescendants().OfType().FirstOrDefault(x => x.Name == "container"); var editableTextBox = containerPanel?.GetVisualDescendants().OfType().FirstOrDefault(x => x.Name == "PART_EditableTextBox"); var popup = containerPanel?.GetVisualDescendants().OfType().FirstOrDefault(x => x.Name == "PART_Popup"); var popupScrollViewer = popup?.Child as ScrollViewer; diff --git a/tests/Avalonia.Controls.UnitTests/CommandBarTests.cs b/tests/Avalonia.Controls.UnitTests/CommandBarTests.cs index 371cbe4d6d..a7996a46ca 100644 --- a/tests/Avalonia.Controls.UnitTests/CommandBarTests.cs +++ b/tests/Avalonia.Controls.UnitTests/CommandBarTests.cs @@ -3,9 +3,14 @@ using System.Collections.Generic; using System.Collections.Specialized; using System.Linq; using Avalonia.Controls; +using Avalonia.Controls.Presenters; using Avalonia.Controls.Primitives; +using Avalonia.Controls.Templates; using Avalonia.Input; using Avalonia.LogicalTree; +using Avalonia.Media; +using Avalonia.Styling; +using Avalonia.Themes.Simple; using Avalonia.Threading; using Avalonia.UnitTests; using Avalonia.VisualTree; @@ -118,6 +123,28 @@ public class CommandBarButtonTests : ScopedTestBase var btn = new CommandBarButton { CommandParameter = "param" }; Assert.Equal("param", btn.CommandParameter); } + + [Fact] + public void Foreground_DoesNotSetOrOverwriteIconElementForeground() + { + var icon = new PathIcon(); + var btn = new CommandBarButton + { + Icon = icon, + Foreground = Brushes.Red + }; + + Assert.False(icon.IsSet(TemplatedControl.ForegroundProperty)); + + btn.Foreground = Brushes.Blue; + + Assert.False(icon.IsSet(TemplatedControl.ForegroundProperty)); + + icon.Foreground = Brushes.Green; + btn.Foreground = Brushes.Red; + + Assert.Same(Brushes.Green, icon.Foreground); + } } public class CommandBarToggleButtonTests : ScopedTestBase @@ -205,6 +232,28 @@ public class CommandBarToggleButtonTests : ScopedTestBase var btn = new CommandBarToggleButton { CommandParameter = 42 }; Assert.Equal(42, btn.CommandParameter); } + + [Fact] + public void Foreground_DoesNotSetOrOverwriteIconElementForeground() + { + var icon = new PathIcon(); + var btn = new CommandBarToggleButton + { + Icon = icon, + Foreground = Brushes.Red + }; + + Assert.False(icon.IsSet(TemplatedControl.ForegroundProperty)); + + btn.Foreground = Brushes.Blue; + + Assert.False(icon.IsSet(TemplatedControl.ForegroundProperty)); + + icon.Foreground = Brushes.Green; + btn.Foreground = Brushes.Red; + + Assert.Same(Brushes.Green, icon.Foreground); + } } public class CommandBarSeparatorTests : ScopedTestBase @@ -309,6 +358,54 @@ public class CommandBarDefaultsTests : ScopedTestBase public void Content_DefaultIsNull() => Assert.Null(new CommandBar().Content); + [Fact] + public void Foreground_IsInheritedByCommandBarButtonPathIconThroughThemeTemplate() + { + using var app = UnitTestApplication.Start(TestServices.StyledWindow); + + var icon = new PathIcon(); + var btn = new CommandBarButton + { + Icon = icon + }; + var commandBar = new CommandBar + { + Foreground = Brushes.Red + }; + commandBar.PrimaryCommands.Add(btn); + + Assert.Same(icon, ApplySimpleThemeAndGetPresentedPathIcon(commandBar, btn)); + Assert.Same(Brushes.Red, icon.Foreground); + + commandBar.Foreground = Brushes.Blue; + + Assert.Same(Brushes.Blue, icon.Foreground); + } + + [Fact] + public void Foreground_IsInheritedByCommandBarToggleButtonPathIconThroughThemeTemplate() + { + using var app = UnitTestApplication.Start(TestServices.StyledWindow); + + var icon = new PathIcon(); + var btn = new CommandBarToggleButton + { + Icon = icon + }; + var commandBar = new CommandBar + { + Foreground = Brushes.Red + }; + commandBar.PrimaryCommands.Add(btn); + + Assert.Same(icon, ApplySimpleThemeAndGetPresentedPathIcon(commandBar, btn)); + Assert.Same(Brushes.Red, icon.Foreground); + + commandBar.Foreground = Brushes.Blue; + + Assert.Same(Brushes.Blue, icon.Foreground); + } + [Fact] public void PrimaryCommands_NotNull() => Assert.NotNull(new CommandBar().PrimaryCommands); @@ -370,6 +467,46 @@ public class CommandBarDefaultsTests : ScopedTestBase [Fact] public void ItemWidthCollapsed_DefaultIs42() => Assert.Equal(42d, new CommandBar().ItemWidthCollapsed); + + private static PathIcon ApplySimpleThemeAndGetPresentedPathIcon(CommandBar commandBar, TemplatedControl command) + { + var simpleTheme = new SimpleTheme(); + Assert.True(simpleTheme.TryGetResource(typeof(CommandBar), ThemeVariant.Default, out var commandBarTheme)); + Assert.True(simpleTheme.TryGetResource(command.GetType(), ThemeVariant.Default, out var commandTheme)); + commandBar.Theme = Assert.IsType(commandBarTheme); + command.Theme = Assert.IsType(commandTheme); + + var root = new TestRoot + { + Width = 500, + Height = 200, + Child = commandBar, + Styles = + { + simpleTheme + } + }; + + root.ApplyStyling(); + commandBar.ApplyStyling(); + commandBar.ApplyTemplate(); + root.LayoutManager.ExecuteInitialLayoutPass(); + + command.ApplyStyling(); + command.ApplyTemplate(); + + var presenter = command.GetTemplateDescendants() + .OfType() + .Single(x => x.Name == "PART_IconPresenter"); + + presenter.ApplyStyling(); + presenter.UpdateChild(); + + var pathIcon = Assert.IsType(presenter.Child); + pathIcon.ApplyStyling(); + + return pathIcon; + } } public class CommandBarPropertyRoundTripTests : ScopedTestBase diff --git a/tests/Avalonia.Controls.UnitTests/ContentControlTests.cs b/tests/Avalonia.Controls.UnitTests/ContentControlTests.cs index 30d789f08f..87eb4ef2af 100644 --- a/tests/Avalonia.Controls.UnitTests/ContentControlTests.cs +++ b/tests/Avalonia.Controls.UnitTests/ContentControlTests.cs @@ -57,7 +57,7 @@ namespace Avalonia.Controls.UnitTests target.ApplyTemplate(); target.Presenter!.ApplyTemplate(); - foreach (Control child in target.GetTemplateChildren()) + foreach (var child in target.GetTemplateDescendants().OfType()) Assert.Equal("foo", child.Tag); } diff --git a/tests/Avalonia.Controls.UnitTests/DatePickerTests.cs b/tests/Avalonia.Controls.UnitTests/DatePickerTests.cs index fc0c64d5d9..4688a88fc5 100644 --- a/tests/Avalonia.Controls.UnitTests/DatePickerTests.cs +++ b/tests/Avalonia.Controls.UnitTests/DatePickerTests.cs @@ -1,4 +1,5 @@ using System; +using System.Globalization; using System.Linq; using System.Reactive.Subjects; using Avalonia.Controls.Primitives; @@ -7,6 +8,7 @@ using Avalonia.Controls.Templates; using Avalonia.Data; using Avalonia.Harfbuzz; using Avalonia.Headless; +using Avalonia.Input; using Avalonia.Platform; using Avalonia.Threading; using Avalonia.UnitTests; @@ -272,12 +274,54 @@ namespace Avalonia.Controls.UnitTests Assert.NotEqual(previousOffset, panel.Offset); } + [Fact] + public void SetInitialFocus_Should_Focus_Day_Selector_For_Day_First_Locale() + { + var previousCulture = CultureInfo.CurrentCulture; + try + { + // en-GB uses dd/MM/yyyy — day appears first in the short date pattern + CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("en-GB"); + + using (UnitTestApplication.Start(FocusServices)) + { + var presenter = new DatePickerPresenter { Template = CreatePickerTemplate() }; + var root = new TestRoot(presenter); + root.LayoutManager.ExecuteInitialLayoutPass(); + + // Trigger InitPicker again now that the visual tree is fully connected, + // so SetInitialFocus can successfully call Focus(). + presenter.Date = new DateTimeOffset(2024, 6, 15, 0, 0, 0, TimeSpan.Zero); + + var daySelector = presenter + .GetVisualDescendants() + .OfType() + .First(p => p.Name == "PART_DaySelector"); + + Assert.Same(daySelector, root.FocusManager.GetFocusedElement()); + } + } + finally + { + CultureInfo.CurrentCulture = previousCulture; + } + } + private static TestServices Services => TestServices.MockThreadingInterface.With( fontManagerImpl: new HeadlessFontManagerStub(), standardCursorFactory: Mock.Of(), textShaperImpl: new HarfBuzzTextShaper(), renderInterface: new HeadlessPlatformRenderInterface()); + private static TestServices FocusServices => TestServices.MockThreadingInterface.With( + fontManagerImpl: new HeadlessFontManagerStub(), + standardCursorFactory: Mock.Of(), + textShaperImpl: new HarfBuzzTextShaper(), + renderInterface: new HeadlessPlatformRenderInterface(), + keyboardDevice: () => new KeyboardDevice(), + keyboardNavigation: () => new KeyboardNavigationHandler(), + inputManager: new InputManager()); + private static IControlTemplate CreateTemplate() { return new FuncControlTemplate((control, scope) => diff --git a/tests/Avalonia.Controls.UnitTests/NavigationPageTests.cs b/tests/Avalonia.Controls.UnitTests/NavigationPageTests.cs index 78fe1a69d5..5ac4cf2dfe 100644 --- a/tests/Avalonia.Controls.UnitTests/NavigationPageTests.cs +++ b/tests/Avalonia.Controls.UnitTests/NavigationPageTests.cs @@ -1385,6 +1385,19 @@ public class NavigationPageTests var nav = new NavigationPage { IsGestureEnabled = value }; Assert.Equal(value, nav.IsGestureEnabled); } + + [Fact] + public async Task SafeAreaPadding_Affeccts_Nav_Bar_Height() + { + var nav = new NavigationPage() + { + SafeAreaPadding = new Thickness(10) + }; + var page = new ContentPage(); + NavigationPage.SetBarHeightOverride(page, 60.0); + await nav.PushAsync(page); + Assert.Equal(70.0, nav.EffectiveBarHeight); + } } public class AttachedPropertyTests : ScopedTestBase diff --git a/tests/Avalonia.Controls.UnitTests/NumericUpDownTests.cs b/tests/Avalonia.Controls.UnitTests/NumericUpDownTests.cs index 868b33d7bd..b1a402435d 100644 --- a/tests/Avalonia.Controls.UnitTests/NumericUpDownTests.cs +++ b/tests/Avalonia.Controls.UnitTests/NumericUpDownTests.cs @@ -142,7 +142,7 @@ namespace Avalonia.Controls.UnitTests } private static TextBox GetTextBox(NumericUpDown control) { - return control.GetTemplateChildren() + return control.GetTemplateDescendants() .OfType() .Select(b => b.Content) .OfType() @@ -151,7 +151,7 @@ namespace Avalonia.Controls.UnitTests private static ButtonSpinner GetSpinner(NumericUpDown control) { - return control.GetTemplateChildren() + return control.GetTemplateDescendants() .OfType() .First(); } diff --git a/tests/Avalonia.Controls.UnitTests/PageNavigationHostTests.cs b/tests/Avalonia.Controls.UnitTests/PageNavigationHostTests.cs index 862a407d3d..88b8741a03 100644 --- a/tests/Avalonia.Controls.UnitTests/PageNavigationHostTests.cs +++ b/tests/Avalonia.Controls.UnitTests/PageNavigationHostTests.cs @@ -129,5 +129,38 @@ public class PageNavigationHostTests Assert.Equal("NavigatedFrom", order[0]); Assert.Equal("NavigatedTo", order[1]); } + + [Fact] + public void InitialLayout_WithExistingPage_DoesNotThrow_WhenContentPresenterChildIsAssigned() + { + var page = new ContentPage { Header = "Home" }; + var host = new PageNavigationHost { Page = page }; + var root = new TestRoot { Child = host }; + + var exception = Record.Exception(() => root.LayoutManager.ExecuteInitialLayoutPass()); + + Assert.Null(exception); + Assert.NotNull(host.Presenter); + Assert.Same(page, host.Presenter!.Child); + } + + [Fact] + public void ReplacingPage_ResetsOldPresenterChildSafeAreaPadding() + { + var first = new ContentPage { Header = "First" }; + var second = new ContentPage { Header = "Second" }; + var host = new PageNavigationHost { Page = first }; + var root = new TestRoot { Child = host }; + + root.LayoutManager.ExecuteInitialLayoutPass(); + first.SafeAreaPadding = new Thickness(1, 2, 3, 4); + + var exception = Record.Exception(() => host.Page = second); + + Assert.Null(exception); + Assert.Equal(default, first.SafeAreaPadding); + Assert.NotNull(host.Presenter); + Assert.Same(second, host.Presenter!.Child); + } } } diff --git a/tests/Avalonia.Controls.UnitTests/PresentationSourceTests.cs b/tests/Avalonia.Controls.UnitTests/PresentationSourceTests.cs new file mode 100644 index 0000000000..5e96e31f5f --- /dev/null +++ b/tests/Avalonia.Controls.UnitTests/PresentationSourceTests.cs @@ -0,0 +1,147 @@ +using System; +using Avalonia.Controls.Chrome; +using Avalonia.Controls.Platform; +using Avalonia.Controls.Templates; +using Avalonia.Input; +using Avalonia.Markup.Xaml.Templates; +using Avalonia.Media; +using Avalonia.Styling; +using Avalonia.Threading; +using Avalonia.UnitTests; +using Avalonia.VisualTree; +using Xunit; + +namespace Avalonia.Controls.UnitTests; + +public sealed class PresentationSourceTests : ScopedTestBase +{ + [Fact] + public void ChromeHitTest_Prefers_Overlay_Over_Content() + { + var overlay = new Border + { + Background = Brushes.Red, + [WindowDecorationProperties.ElementRoleProperty] = WindowDecorationsElementRole.TitleBar + }; + + var content = new Border + { + Background = Brushes.Blue + }; + + DoChromeHitTest( + underlay: null, + content: content, + overlay: overlay, + expectedChromeVisual: overlay, + expectedRole: WindowDecorationsElementRole.TitleBar); + } + + [Fact] + public void ChromeHitTest_Prefers_Content_Over_Underlay() + { + var underlay = new Border + { + Background = Brushes.Red, + [WindowDecorationProperties.ElementRoleProperty] = WindowDecorationsElementRole.TitleBar + }; + + var content = new Border + { + Background = Brushes.Blue + }; + + DoChromeHitTest( + underlay: underlay, + content: content, + overlay: null, + expectedChromeVisual: content, + expectedRole: null); + } + + private static void DoChromeHitTest( + Control? underlay, + Control? content, + Control? overlay, + Visual? expectedChromeVisual, + WindowDecorationsElementRole? expectedRole) + { + const double width = 100; + const double height = 100; + + if (underlay is not null) + { + underlay.Width = width; + underlay.Height = height; + } + + if (content is not null) + { + content.Width = width; + content.Height = height; + } + + if (overlay is not null) + { + overlay.Width = width; + overlay.Height = height; + } + + using var app = UnitTestApplication.Start(TestServices.StyledWindow); + + var decorations = new WindowDrawnDecorationsContent + { + Underlay = underlay, + Overlay = overlay + }; + + Application.Current!.Resources.Add(typeof(WindowDrawnDecorations), CreateDecorationsTheme(decorations)); + + var renderTimer = new CompositorTestServices.ManualRenderTimer(); + var compositor = RendererMocks.CreateDummyCompositor(renderTimer); + var windowImpl = MockWindowingPlatform.CreateWindowMock(width, height, compositor); + windowImpl.Setup(w => w.IsClientAreaExtendedToDecorations).Returns(true); + windowImpl.Setup(w => w.RequestedDrawnDecorations).Returns(PlatformRequestedDrawnDecoration.TitleBar); + windowImpl.Setup(w => w.NeedsManagedDecorations).Returns(true); + + var window = new Window(windowImpl.Object) + { + WindowDecorations = WindowDecorations.Full, + ExtendClientAreaToDecorationsHint = true, + Content = content + }; + + window.Show(); + + Dispatcher.CurrentDispatcher.RunJobs(null, TestContext.Current.CancellationToken); + renderTimer.TriggerTick(); + Dispatcher.CurrentDispatcher.RunJobs(null, TestContext.Current.CancellationToken); + + var hitTestPoint = new Point(width / 2, height / 2); + + var clientVisual = window.GetVisualAt(hitTestPoint); + Assert.Same(window.Content, clientVisual); + + var chromeVisual = window.PresentationSource.RootVisual.GetVisualAt(hitTestPoint); + Assert.Same(expectedChromeVisual, chromeVisual); + + var chromeRole = ((IInputRoot)window.PresentationSource).HitTestChromeElement(hitTestPoint); + Assert.Equal(expectedRole, chromeRole); + } + + private static ControlTheme CreateDecorationsTheme(WindowDrawnDecorationsContent content) + { + var template = new WindowDrawnDecorationsTemplate + { + Content = (IServiceProvider? _) => new TemplateResult(content, new NameScope()) + }; + + return new ControlTheme(typeof(WindowDrawnDecorations)) + { + Setters = + { + new Setter(WindowDrawnDecorations.TemplateProperty, template) + } + }; + } +} diff --git a/tests/Avalonia.Controls.UnitTests/Primitives/PopupTests.cs b/tests/Avalonia.Controls.UnitTests/Primitives/PopupTests.cs index ca38a56166..dcf9b6f653 100644 --- a/tests/Avalonia.Controls.UnitTests/Primitives/PopupTests.cs +++ b/tests/Avalonia.Controls.UnitTests/Primitives/PopupTests.cs @@ -329,7 +329,7 @@ namespace Avalonia.Controls.UnitTests.Primitives target.ApplyTemplate(); - var popup = (Popup)target.GetTemplateChildren().First(x => x.Name == "popup"); + var popup = (Popup)target.GetTemplateDescendants().First(x => x.Name == "popup"); popup.Open(); var popupRoot = (Control)popup.Host!; @@ -420,7 +420,7 @@ namespace Avalonia.Controls.UnitTests.Primitives target.ApplyTemplate(); - var popup = (Popup)target.GetTemplateChildren().First(x => x.Name == "popup"); + var popup = (Popup)target.GetTemplateDescendants().First(x => x.Name == "popup"); popup.Open(); var popupRoot = (Control)popup.Host!; @@ -515,7 +515,7 @@ namespace Avalonia.Controls.UnitTests.Primitives target.ApplyTemplate(); - var popup = (Popup)target.GetTemplateChildren().First(x => x.Name == "popup"); + var popup = (Popup)target.GetTemplateDescendants().First(x => x.Name == "popup"); popup.Open(); var popupRoot = (Control)popup.Host!; diff --git a/tests/Avalonia.Controls.UnitTests/Primitives/ScrollBarTests.cs b/tests/Avalonia.Controls.UnitTests/Primitives/ScrollBarTests.cs index 215cdb64b3..b6bfab09cc 100644 --- a/tests/Avalonia.Controls.UnitTests/Primitives/ScrollBarTests.cs +++ b/tests/Avalonia.Controls.UnitTests/Primitives/ScrollBarTests.cs @@ -20,7 +20,7 @@ namespace Avalonia.Controls.UnitTests.Primitives }; target.ApplyTemplate(); - var track = (Track)target.GetTemplateChildren().First(x => x.Name == "track"); + var track = (Track)target.GetTemplateDescendants().First(x => x.Name == "track"); target.Value = 50; Assert.Equal(50, track.Value); @@ -35,7 +35,7 @@ namespace Avalonia.Controls.UnitTests.Primitives }; target.ApplyTemplate(); - var track = (Track)target.GetTemplateChildren().First(x => x.Name == "track"); + var track = (Track)target.GetTemplateDescendants().First(x => x.Name == "track"); track.Value = 50; Assert.Equal(50, target.Value); @@ -51,7 +51,7 @@ namespace Avalonia.Controls.UnitTests.Primitives target.ApplyTemplate(); - var track = (Track)target.GetTemplateChildren().First(x => x.Name == "track"); + var track = (Track)target.GetTemplateDescendants().First(x => x.Name == "track"); target.Value = 25; track.Value = 50; @@ -68,7 +68,7 @@ namespace Avalonia.Controls.UnitTests.Primitives target.ApplyTemplate(); - var track = (Track)target.GetTemplateChildren().First(x => x.Name == "track"); + var track = (Track)target.GetTemplateDescendants().First(x => x.Name == "track"); var raisedEvent = Assert.Raises( handler => target.Scroll += handler, @@ -97,7 +97,7 @@ namespace Avalonia.Controls.UnitTests.Primitives target.ApplyTemplate(); - var track = (Track)target.GetTemplateChildren().First(x => x.Name == "track"); + var track = (Track)target.GetTemplateDescendants().First(x => x.Name == "track"); var raisedEvent = Assert.Raises( handler => target.Scroll += handler, diff --git a/tests/Avalonia.Controls.UnitTests/Primitives/TemplatedControlTests.cs b/tests/Avalonia.Controls.UnitTests/Primitives/TemplatedControlTests.cs index 721ad45c11..8a35a75dc4 100644 --- a/tests/Avalonia.Controls.UnitTests/Primitives/TemplatedControlTests.cs +++ b/tests/Avalonia.Controls.UnitTests/Primitives/TemplatedControlTests.cs @@ -204,7 +204,7 @@ namespace Avalonia.Controls.UnitTests.Primitives target.ApplyTemplate(); - foreach (Control child in target.GetTemplateChildren()) + foreach (var child in target.GetTemplateDescendants().OfType()) Assert.Equal("foo", child.Tag); } @@ -237,11 +237,11 @@ namespace Avalonia.Controls.UnitTests.Primitives target.ApplyTemplate(); - var contentControl = target.GetTemplateChildren().OfType().Single(); + var contentControl = target.GetTemplateDescendants().OfType().Single(); contentControl.ApplyTemplate(); - var border = contentControl.GetTemplateChildren().OfType().Single(); - var presenter = contentControl.GetTemplateChildren().OfType().Single(); + var border = contentControl.GetTemplateDescendants().OfType().Single(); + var presenter = contentControl.GetTemplateDescendants().OfType().Single(); var decorator = (Decorator)presenter.Content!; var textBlock = (TextBlock)decorator.Child!; diff --git a/tests/Avalonia.Controls.UnitTests/Primitives/ToggleButtonTests.cs b/tests/Avalonia.Controls.UnitTests/Primitives/ToggleButtonTests.cs index ac35c4b33f..c33c4d1447 100644 --- a/tests/Avalonia.Controls.UnitTests/Primitives/ToggleButtonTests.cs +++ b/tests/Avalonia.Controls.UnitTests/Primitives/ToggleButtonTests.cs @@ -1,4 +1,6 @@ -using Avalonia.Data; +using System; +using Avalonia.Controls.UnitTests.Utils; +using Avalonia.Data; using Avalonia.UnitTests; using Xunit; diff --git a/tests/Avalonia.Controls.UnitTests/ScrollViewerTests.cs b/tests/Avalonia.Controls.UnitTests/ScrollViewerTests.cs index e71f4bd8b7..ec1cd5fb66 100644 --- a/tests/Avalonia.Controls.UnitTests/ScrollViewerTests.cs +++ b/tests/Avalonia.Controls.UnitTests/ScrollViewerTests.cs @@ -610,9 +610,9 @@ namespace Avalonia.Controls.UnitTests private Thumb GetVerticalThumb(ScrollViewer target) { var scrollbar = Assert.IsType( - target.GetTemplateChildren().FirstOrDefault(x => x.Name == "PART_VerticalScrollBar")); + target.GetTemplateDescendants().FirstOrDefault(x => x.Name == "PART_VerticalScrollBar")); var track = Assert.IsType( - scrollbar.GetTemplateChildren().FirstOrDefault(x => x.Name == "track")); + scrollbar.GetTemplateDescendants().FirstOrDefault(x => x.Name == "track")); return Assert.IsType(track.Thumb); } diff --git a/tests/Avalonia.Controls.UnitTests/TabControlTests.cs b/tests/Avalonia.Controls.UnitTests/TabControlTests.cs index 42643c5560..ea14eb5b2f 100644 --- a/tests/Avalonia.Controls.UnitTests/TabControlTests.cs +++ b/tests/Avalonia.Controls.UnitTests/TabControlTests.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; +using System.Reflection; using System.Runtime.CompilerServices; using System.Threading; using System.Threading.Tasks; @@ -21,6 +22,7 @@ using Avalonia.Markup.Xaml; using Avalonia.Platform; using Avalonia.Styling; using Avalonia.UnitTests; +using Avalonia.VisualTree; using Moq; using Xunit; @@ -913,6 +915,165 @@ namespace Avalonia.Controls.UnitTests Times.Once); } + [Fact] + public void Interrupted_PageTransition_Can_Select_Original_Control_Before_Previous_Transition_Completes() + { + using var app = Start(); + + var firstPage = new ContentPage { Content = "Alpha" }; + var secondPage = new ContentPage { Content = "Beta" }; + var starts = new List<(object? FromContent, object? ToContent, bool Forward)>(); + var transitionGate = new TaskCompletionSource(); + var transition = new Mock(); + transition + .Setup(t => t.Start( + It.IsAny(), It.IsAny(), + It.IsAny(), It.IsAny())) + .Callback((from, to, forward, _) => + { + starts.Add(( + (from as ContentPresenter)?.Content, + (to as ContentPresenter)?.Content, + forward)); + }) + .Returns(transitionGate.Task); + + var target = new TabControl + { + PageTransition = transition.Object, + Items = + { + new TabItem { Name = "first", Content = firstPage }, + new TabItem { Name = "second", Content = secondPage }, + }, + }; + + var root = CreateRoot(target); + root.LayoutManager.ExecuteInitialLayoutPass(); + + target.SelectedIndex = 1; + root.LayoutManager.ExecuteLayoutPass(); + + Assert.Single(starts); + Assert.Same(firstPage, starts[0].FromContent); + Assert.Same(secondPage, starts[0].ToContent); + Assert.True(starts[0].Forward); + + var exception = Record.Exception(() => target.SelectedIndex = 0); + + Assert.Null(exception); + + root.LayoutManager.ExecuteLayoutPass(); + + Assert.Equal(2, starts.Count); + Assert.Null(starts[1].FromContent); + Assert.Same(firstPage, starts[1].ToContent); + Assert.False(starts[1].Forward); + Assert.Same(firstPage, target.SelectedContent); + } + + [Fact] + public void Pending_PageTransition_Can_Select_Original_Control_Before_Transition_Starts() + { + using var app = Start(); + + var firstPage = new ContentPage { Content = "Alpha" }; + var secondPage = new ContentPage { Content = "Beta" }; + var starts = new List<(object? FromContent, object? ToContent, bool Forward)>(); + var transition = new Mock(); + transition + .Setup(t => t.Start( + It.IsAny(), It.IsAny(), + It.IsAny(), It.IsAny())) + .Callback((from, to, forward, _) => + { + starts.Add(( + (from as ContentPresenter)?.Content, + (to as ContentPresenter)?.Content, + forward)); + }) + .Returns(Task.CompletedTask); + + var target = new TabControl + { + PageTransition = transition.Object, + Items = + { + new TabItem { Name = "first", Content = firstPage }, + new TabItem { Name = "second", Content = secondPage }, + }, + }; + + var root = CreateRoot(target); + root.LayoutManager.ExecuteInitialLayoutPass(); + + target.SelectedIndex = 1; + var exception = Record.Exception(() => target.SelectedIndex = 0); + + Assert.Null(exception); + + root.LayoutManager.ExecuteLayoutPass(); + + Assert.Single(starts); + Assert.Null(starts[0].FromContent); + Assert.Same(firstPage, starts[0].ToContent); + Assert.False(starts[0].Forward); + Assert.Same(firstPage, target.SelectedContent); + } + + [Fact] + public void Interrupted_PageTransition_Clears_Reused_Control_From_Owning_SelectedContentHost() + { + using var app = Start(); + + var firstPage = new ContentPage { Content = "Alpha" }; + var secondPage = new ContentPage { Content = "Beta" }; + var transition = new Mock(); + transition + .Setup(t => t.Start( + It.IsAny(), It.IsAny(), + It.IsAny(), It.IsAny())) + .Returns(Task.CompletedTask); + + var target = new TabControl + { + Items = + { + new TabItem { Name = "first", Content = firstPage }, + new TabItem { Name = "second", Content = secondPage }, + }, + }; + + var root = CreateRoot(target); + root.LayoutManager.ExecuteInitialLayoutPass(); + + target.SelectedIndex = 1; + root.LayoutManager.ExecuteLayoutPass(); + + var primary = target.GetVisualDescendants() + .OfType() + .Single(x => x.Name == "PART_SelectedContentHost"); + var secondary = target.GetVisualDescendants() + .OfType() + .Single(x => x.Name == "PART_SelectedContentHost2"); + + // Simulate the stale presenter ownership that can happen when tab changes + // interrupt a transition: the page is still parented by the named content + // host, but the active field no longer points at that host. + primary.SetContentWithDataContext(firstPage, null); + secondary.IsVisible = false; + SetPrivateField(target, "_contentPart", secondary); + SetPrivateField(target, "_contentPresenter2", secondary); + + target.PageTransition = transition.Object; + var exception = Record.Exception(() => target.SelectedIndex = 0); + + Assert.Null(exception); + Assert.Same(firstPage, target.SelectedContent); + Assert.Null(primary.Content); + Assert.Same(firstPage, secondary.Content); + } + private static IControlTemplate TabControlTemplate() { return new FuncControlTemplate((parent, scope) => @@ -943,6 +1104,13 @@ namespace Avalonia.Controls.UnitTests }); } + private static void SetPrivateField(TabControl target, string name, T value) + { + var field = typeof(TabControl).GetField(name, BindingFlags.Instance | BindingFlags.NonPublic); + Assert.NotNull(field); + field.SetValue(target, value); + } + private static IControlTemplate TabItemTemplate() { return new FuncControlTemplate((parent, scope) => @@ -1533,7 +1701,7 @@ namespace Avalonia.Controls.UnitTests tabItem.ApplyTemplate(); tabItem.Presenter!.UpdateChild(); - var iconPresenter = tabItem.GetTemplateChildren().OfType().First(x => x.Name == "PART_IconPresenter"); + var iconPresenter = tabItem.GetTemplateDescendants().OfType().First(x => x.Name == "PART_IconPresenter"); Assert.NotNull(iconPresenter); Assert.Equal("home", iconPresenter!.Content); Assert.NotNull(iconPresenter.ContentTemplate); @@ -1561,7 +1729,7 @@ namespace Avalonia.Controls.UnitTests tabItem.ApplyTemplate(); tabItem.Presenter!.UpdateChild(); - var iconPresenter = tabItem.GetTemplateChildren().OfType().First(x => x.Name == "PART_IconPresenter"); + var iconPresenter = tabItem.GetTemplateDescendants().OfType().First(x => x.Name == "PART_IconPresenter"); Assert.NotNull(iconPresenter); Assert.Same(icon, iconPresenter!.Content); Assert.Null(iconPresenter.ContentTemplate); @@ -1580,7 +1748,7 @@ namespace Avalonia.Controls.UnitTests tabItem.ApplyTemplate(); tabItem.Presenter!.UpdateChild(); - var iconPresenter = tabItem.GetTemplateChildren().OfType().First(x => x.Name == "PART_IconPresenter"); + var iconPresenter = tabItem.GetTemplateDescendants().OfType().First(x => x.Name == "PART_IconPresenter"); Assert.Equal("first", iconPresenter!.Content); tabItem.Icon = "second"; diff --git a/tests/Avalonia.Controls.UnitTests/Templates/TemplateExtensionsTests.cs b/tests/Avalonia.Controls.UnitTests/Templates/TemplateExtensionsTests.cs index d540ae9444..734c2a916d 100644 --- a/tests/Avalonia.Controls.UnitTests/Templates/TemplateExtensionsTests.cs +++ b/tests/Avalonia.Controls.UnitTests/Templates/TemplateExtensionsTests.cs @@ -38,7 +38,7 @@ namespace Avalonia.Controls.Templates.UnitTests border3.Child = border4; border4.Child = border5; - var result = target.GetTemplateChildren().Select(x => x.Name).ToArray(); + var result = target.GetTemplateDescendants().Select(x => x.Name).ToArray(); Assert.Equal(new[] { "border1", "inner", "border4" }, result); } diff --git a/tests/Avalonia.Controls.UnitTests/TopLevelTests.cs b/tests/Avalonia.Controls.UnitTests/TopLevelTests.cs index 470030ef0b..15c1f650da 100644 --- a/tests/Avalonia.Controls.UnitTests/TopLevelTests.cs +++ b/tests/Avalonia.Controls.UnitTests/TopLevelTests.cs @@ -253,6 +253,36 @@ namespace Avalonia.Controls.UnitTests } } + [Fact] + public void XButton1Down_Should_Raise_BackRequested() + { + // Regression test: prior to this fix, the PreProcess subscription compared + // e.Root against 'this' (the TopLevel/Window), but e.Root is set to the + // PresentationSource (the IInputRoot), not the Window itself. The comparison + // always failed so BackRequested was never raised for XButton1Down. + var services = TestServices.StyledWindow.With(inputManager: new InputManager()); + + using (UnitTestApplication.Start(services)) + { + var impl = CreateMockTopLevelImpl(true); + var target = new TestTopLevel(impl.Object); + + var raised = false; + target.BackRequested += (_, _) => raised = true; + + var mouseDevice = new MouseDevice(new Pointer(0, PointerType.Mouse, true)); + impl.Object.Input!(new RawPointerEventArgs( + mouseDevice, + timestamp: 0, + target.InputRoot, + RawPointerEventType.XButton1Down, + new RawPointerPoint { Position = default }, + RawInputModifiers.None)); + + Assert.True(raised); + } + } + [Fact] public void TopLevel_Should_Unfocus_When_Impl_Focus_Is_Lost() { diff --git a/tests/Avalonia.Controls.UnitTests/TransitioningContentControlTests.cs b/tests/Avalonia.Controls.UnitTests/TransitioningContentControlTests.cs index b84fef1fb2..7f42e20307 100644 --- a/tests/Avalonia.Controls.UnitTests/TransitioningContentControlTests.cs +++ b/tests/Avalonia.Controls.UnitTests/TransitioningContentControlTests.cs @@ -371,7 +371,7 @@ namespace Avalonia.Controls.UnitTests private static ContentPresenter GetContentPresenters2(TransitioningContentControl target) { return Assert.IsType(target - .GetTemplateChildren() + .GetTemplateDescendants() .First(x => x.Name == "PART_ContentPresenter2")); } diff --git a/tests/Avalonia.Controls.UnitTests/WindowTests.cs b/tests/Avalonia.Controls.UnitTests/WindowTests.cs index 3b2386b1d5..646dad30ec 100644 --- a/tests/Avalonia.Controls.UnitTests/WindowTests.cs +++ b/tests/Avalonia.Controls.UnitTests/WindowTests.cs @@ -2,9 +2,13 @@ using System; using System.Collections.Generic; using System.Reactive.Linq; using System.Threading.Tasks; +using Avalonia.Controls.Chrome; using Avalonia.Controls.Platform; +using Avalonia.Controls.Templates; +using Avalonia.Markup.Xaml.Templates; using Avalonia.Media; using Avalonia.Platform; +using Avalonia.Styling; using Avalonia.Threading; using Avalonia.UnitTests; using Avalonia.VisualTree; @@ -1590,6 +1594,54 @@ namespace Avalonia.Controls.UnitTests } } + [Fact] + public void WindowDecorationsTheme_Should_Apply_To_Decorations() + { + using var app = UnitTestApplication.Start(TestServices.StyledWindow); + + var windowImpl = MockWindowingPlatform.CreateWindowMock(); + windowImpl.Setup(x => x.NeedsManagedDecorations).Returns(true); + windowImpl.Setup(x => x.RequestedDrawnDecorations).Returns( + PlatformRequestedDrawnDecoration.TitleBar | PlatformRequestedDrawnDecoration.Border); + + var window = new Window(windowImpl.Object); + + var (theme1, content1) = CreateTheme(); + window.WindowDecorationsTheme = theme1; + window.Show(); + + var decorations = window.TopLevelHost.Decorations; + Assert.NotNull(decorations); + Assert.Same(theme1, decorations.Theme); + Assert.Same(content1, decorations.Content); + + var (theme2, content2) = CreateTheme(); + window.WindowDecorationsTheme = theme2; + + Assert.Same(theme2, decorations.Theme); + Assert.Same(content2, decorations.Content); + + static (ControlTheme theme, WindowDrawnDecorationsContent content) CreateTheme() + { + var content = new WindowDrawnDecorationsContent(); + + var template = new WindowDrawnDecorationsTemplate + { + Content = (IServiceProvider? _) => new TemplateResult(content, new NameScope()) + }; + + var theme = new ControlTheme(typeof(WindowDrawnDecorations)) + { + Setters = + { + new Setter(WindowDrawnDecorations.TemplateProperty, template) + } + }; + + return (theme, content); + } + } + private class TopmostWindow : Window { static TopmostWindow() diff --git a/tests/Avalonia.IntegrationTests.Win32/ExtendClientAreaWindowTests.cs b/tests/Avalonia.IntegrationTests.Win32/ExtendClientAreaWindowTests.cs index 7c7d34ac14..2e94734d17 100644 --- a/tests/Avalonia.IntegrationTests.Win32/ExtendClientAreaWindowTests.cs +++ b/tests/Avalonia.IntegrationTests.Win32/ExtendClientAreaWindowTests.cs @@ -3,17 +3,17 @@ using System.Linq; using System.Threading.Tasks; using Avalonia.Automation; using Avalonia.Controls; -using Avalonia.Interactivity; using Avalonia.Media; using Avalonia.VisualTree; using Xunit; +using static Avalonia.IntegrationTests.Win32.UnmanagedMethods; namespace Avalonia.IntegrationTests.Win32; public abstract class ExtendClientAreaWindowTests : IDisposable { - private const double ClientWidth = 200; - private const double ClientHeight = 200; + private const int ClientWidth = 200; + private const int ClientHeight = 200; private Window? _window; @@ -28,10 +28,13 @@ public abstract class ExtendClientAreaWindowTests : IDisposable protected abstract WindowDecorations Decorations { get; } - public static MatrixTheoryData States - => new([true, false], Enum.GetValues()); + public static MatrixTheoryData States + => new( + Enumerable.Range(0, GetSystemMetrics(SM_CMONITORS)), + Enum.GetValues(), + [true, false]); - private async Task InitWindowAsync(WindowState state, bool canResize) + private async Task InitWindowAsync(int screenIndex, WindowState state, bool canResize) { Assert.Null(_window); @@ -44,7 +47,6 @@ public abstract class ExtendClientAreaWindowTests : IDisposable Width = ClientWidth, Height = ClientHeight, WindowStartupLocation = WindowStartupLocation.Manual, - Position = new PixelPoint(50, 50), Content = new Border { Background = Brushes.DodgerBlue, @@ -53,6 +55,9 @@ public abstract class ExtendClientAreaWindowTests : IDisposable } }; + var screenCenter = _window.Screens.All[screenIndex].Bounds.Center; + _window.Position = new PixelPoint(screenCenter.X - ClientWidth / 2, screenCenter.Y - ClientHeight / 2); + _window.Show(); await Window.WhenLoadedAsync(); @@ -60,9 +65,9 @@ public abstract class ExtendClientAreaWindowTests : IDisposable [Theory] [MemberData(nameof(States))] - public async Task Normal_State_Respects_Client_Size(bool canResize, WindowState initialState) + public async Task Normal_State_Respects_Client_Size(int screenIndex, WindowState initialState, bool canResize) { - await InitWindowAsync(initialState, canResize); + await InitWindowAsync(screenIndex, initialState, canResize); if (initialState != WindowState.Normal) Window.WindowState = WindowState.Normal; @@ -79,16 +84,16 @@ public abstract class ExtendClientAreaWindowTests : IDisposable [Theory] [MemberData(nameof(States))] - public async Task Maximized_State_Fills_Screen_Working_Area(bool canResize, WindowState initialState) + public async Task Maximized_State_Fills_Screen_Working_Area(int screenIndex, WindowState initialState, bool canResize) { - await InitWindowAsync(initialState, canResize); + await InitWindowAsync(screenIndex, initialState, canResize); if (initialState != WindowState.Maximized) Window.WindowState = WindowState.Maximized; // The client size should match the screen working area var clientSize = Window.GetWin32ClientSize(); - var screenWorkingArea = Window.GetScreen().WorkingArea; + var screenWorkingArea = Window.GetScreenAtIndex(screenIndex).WorkingArea; Assert.Equal(screenWorkingArea.Size, clientSize); VerifyMaximizedState(); @@ -98,16 +103,16 @@ public abstract class ExtendClientAreaWindowTests : IDisposable [Theory] [MemberData(nameof(States))] - public async Task FullScreen_State_Fills_Screen(bool canResize, WindowState initialState) + public async Task FullScreen_State_Fills_Screen(int screenIndex, WindowState initialState, bool canResize) { - await InitWindowAsync(initialState, canResize); + await InitWindowAsync(screenIndex, initialState, canResize); if (initialState != WindowState.FullScreen) Window.WindowState = WindowState.FullScreen; // The client size should match the screen bounds var clientSize = Window.GetWin32ClientSize(); - var screenBounds = Window.GetScreen().Bounds; + var screenBounds = Window.GetScreenAtIndex(screenIndex).Bounds; Assert.Equal(screenBounds.Width, clientSize.Width); Assert.Equal(screenBounds.Height, clientSize.Height); diff --git a/tests/Avalonia.IntegrationTests.Win32/StandardWindowTests.cs b/tests/Avalonia.IntegrationTests.Win32/StandardWindowTests.cs index 5971c4dc6c..233f69122b 100644 --- a/tests/Avalonia.IntegrationTests.Win32/StandardWindowTests.cs +++ b/tests/Avalonia.IntegrationTests.Win32/StandardWindowTests.cs @@ -2,19 +2,16 @@ using System.Linq; using System.Threading.Tasks; using Avalonia.Controls; -using Avalonia.Controls.Chrome; -using Avalonia.Interactivity; using Avalonia.Media; -using Avalonia.Platform; -using Avalonia.VisualTree; using Xunit; +using static Avalonia.IntegrationTests.Win32.UnmanagedMethods; namespace Avalonia.IntegrationTests.Win32; public abstract class StandardWindowTests : IDisposable { - private const double ClientWidth = 200; - private const double ClientHeight = 200; + private const int ClientWidth = 200; + private const int ClientHeight = 200; private Window? _window; @@ -31,10 +28,13 @@ public abstract class StandardWindowTests : IDisposable protected abstract bool HasCaption { get; } - public static MatrixTheoryData States - => new([true, false], Enum.GetValues()); + public static MatrixTheoryData States + => new( + Enumerable.Range(0, GetSystemMetrics(SM_CMONITORS)), + Enum.GetValues(), + [true, false]); - private async Task InitWindowAsync(WindowState state, bool canResize) + private async Task InitWindowAsync(int screenIndex, WindowState state, bool canResize) { Assert.Null(_window); @@ -47,7 +47,6 @@ public abstract class StandardWindowTests : IDisposable Width = ClientWidth, Height = ClientHeight, WindowStartupLocation = WindowStartupLocation.Manual, - Position = new PixelPoint(50, 50), Content = new Border { Background = Brushes.DodgerBlue, @@ -56,6 +55,9 @@ public abstract class StandardWindowTests : IDisposable } }; + var screenCenter = _window.Screens.All[screenIndex].Bounds.Center; + _window.Position = new PixelPoint(screenCenter.X - ClientWidth / 2, screenCenter.Y - ClientHeight / 2); + _window.Show(); await Window.WhenLoadedAsync(); @@ -63,16 +65,16 @@ public abstract class StandardWindowTests : IDisposable [Theory] [MemberData(nameof(States))] - public async Task Maximized_State_Fills_Screen_Working_Area(bool canResize, WindowState initialState) + public async Task Maximized_State_Fills_Screen_Working_Area(int screenIndex, WindowState initialState, bool canResize) { - await InitWindowAsync(initialState, canResize); + await InitWindowAsync(screenIndex, initialState, canResize); if (initialState != WindowState.Maximized) Window.WindowState = WindowState.Maximized; // The client size should match the screen working area var clientSize = Window.GetWin32ClientSize(); - var screenWorkingArea = Window.GetScreen().WorkingArea; + var screenWorkingArea = Window.GetScreenAtIndex(screenIndex).WorkingArea; if (HasCaption) { @@ -85,16 +87,16 @@ public abstract class StandardWindowTests : IDisposable [Theory] [MemberData(nameof(States))] - public async Task FullScreen_State_Fills_Screen(bool canResize, WindowState initialState) + public async Task FullScreen_State_Fills_Screen(int screenIndex, WindowState initialState, bool canResize) { - await InitWindowAsync(initialState, canResize); + await InitWindowAsync(screenIndex, initialState, canResize); if (initialState != WindowState.FullScreen) Window.WindowState = WindowState.FullScreen; // The client size should match the screen bounds var clientSize = Window.GetWin32ClientSize(); - var screenBounds = Window.GetScreen().Bounds; + var screenBounds = Window.GetScreenAtIndex(screenIndex).Bounds; Assert.Equal(screenBounds.Width, clientSize.Width); Assert.Equal(screenBounds.Height, clientSize.Height); diff --git a/tests/Avalonia.IntegrationTests.Win32/UnmanagedMethods.cs b/tests/Avalonia.IntegrationTests.Win32/UnmanagedMethods.cs index 591ed182c4..4f4f4c03d0 100644 --- a/tests/Avalonia.IntegrationTests.Win32/UnmanagedMethods.cs +++ b/tests/Avalonia.IntegrationTests.Win32/UnmanagedMethods.cs @@ -13,6 +13,9 @@ internal static partial class UnmanagedMethods [return: MarshalAs(UnmanagedType.Bool)] public static partial bool GetWindowRect(IntPtr hwnd, out RECT lpRect); + [LibraryImport("user32.dll")] + public static partial int GetSystemMetrics(int nIndex); + public struct RECT { public int left; @@ -20,4 +23,6 @@ internal static partial class UnmanagedMethods public int right; public int bottom; } + + public const int SM_CMONITORS = 80; } diff --git a/tests/Avalonia.IntegrationTests.Win32/WindowExtensions.cs b/tests/Avalonia.IntegrationTests.Win32/WindowExtensions.cs index 1d92324961..acf154ddde 100644 --- a/tests/Avalonia.IntegrationTests.Win32/WindowExtensions.cs +++ b/tests/Avalonia.IntegrationTests.Win32/WindowExtensions.cs @@ -27,12 +27,8 @@ internal static class WindowExtensions } } - public static Screen GetScreen(this Window window) - { - var screen = window.Screens.ScreenFromWindow(window); - Assert.NotNull(screen); - return screen; - } + public static Screen GetScreenAtIndex(this Window window, int index) + => window.Screens.All[index]; public static PixelSize GetWin32ClientSize(this Window window) { diff --git a/tests/Avalonia.LeakTests/ControlTests.cs b/tests/Avalonia.LeakTests/ControlTests.cs index 33edc0d00d..108ba2c5f4 100644 --- a/tests/Avalonia.LeakTests/ControlTests.cs +++ b/tests/Avalonia.LeakTests/ControlTests.cs @@ -251,7 +251,7 @@ namespace Avalonia.LeakTests Assert.Same(textBox, window.Presenter!.Child); // Get the border from the TextBox template. - var border = textBox.GetTemplateChildren().FirstOrDefault(x => x.Name == "border"); + var border = textBox.GetTemplateDescendants().FirstOrDefault(x => x.Name == "border"); // The TextBox should have subscriptions to its Classes collection from the // default theme. diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Data/BindingTests_TemplatedParent.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Data/BindingTests_TemplatedParent.cs index b6cd86c563..1f2dcff0b7 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/Data/BindingTests_TemplatedParent.cs +++ b/tests/Avalonia.Markup.Xaml.UnitTests/Data/BindingTests_TemplatedParent.cs @@ -67,7 +67,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.Data window.ApplyTemplate(); button.ApplyTemplate(); - Assert.Equal(button.Tag, button.GetTemplateChildren().OfType().First().ColumnDefinitions[0].Width); + Assert.Equal(button.Tag, button.GetTemplateDescendants().OfType().First().ColumnDefinitions[0].Width); } } } diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs index 727b3ddc45..99a79ded75 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs +++ b/tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/CompiledBindingExtensionTests.cs @@ -1011,7 +1011,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions contentControl.DataContext = new TestDataContext(); // should be ignored contentControl.Measure(new Size(10, 10)); - var result = contentControl.GetTemplateChildren().OfType().First(); + var result = contentControl.GetTemplateDescendants().OfType().First(); Assert.Equal(false, result.Focusable); } } @@ -1046,7 +1046,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions textBox.DataContext = new TestDataContext(); // should be ignored textBox.Measure(new Size(10, 10)); - var result = textBox.GetTemplateChildren().OfType().First(); + var result = textBox.GetTemplateDescendants().OfType().First(); Assert.Equal(textBox.InnerLeftContent, result.Content); } } @@ -1080,7 +1080,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions window.ApplyTemplate(); button.ApplyTemplate(); - Assert.Equal(button.Tag, button.GetTemplateChildren().OfType().First().ColumnDefinitions[0].Width); + Assert.Equal(button.Tag, button.GetTemplateDescendants().OfType().First().ColumnDefinitions[0].Width); } } @@ -1109,7 +1109,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions var contentControl = AvaloniaRuntimeXamlLoader.Parse(xaml); contentControl.Measure(new Size(10, 10)); - var result = contentControl.GetTemplateChildren().OfType().First(); + var result = contentControl.GetTemplateDescendants().OfType().First(); Assert.Equal("Hello", result.Content); } diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/DesignModeTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/DesignModeTests.cs index 42776b236c..cb2b25f0d5 100644 --- a/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/DesignModeTests.cs +++ b/tests/Avalonia.Markup.Xaml.UnitTests/Xaml/DesignModeTests.cs @@ -33,23 +33,19 @@ public class DesignModeTests : XamlTestBase } [Fact] - public void Design_Mode_PreviewWith_Works_With_Control_Template() + public void Design_Mode_PreviewWith_Returns_Original_Control() { using (UnitTestApplication.Start(TestServices.MockWindowingPlatform)) { var obj = (Control)AvaloniaRuntimeXamlLoader.Load(@" ", designMode: true); var preview = Design.CreatePreviewWithControl(obj); - var previewBorder = Assert.IsType(preview); - Assert.IsType