diff --git a/api/Avalonia.nupkg.xml b/api/Avalonia.nupkg.xml
index 3d33c5de44..b88cd8fd12 100644
--- a/api/Avalonia.nupkg.xml
+++ b/api/Avalonia.nupkg.xml
@@ -97,24 +97,102 @@
baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
+ CP0001
+ T:Avalonia.Controls.ApplicationLifetimes.ClassicDesktopStyleApplicationLifetimeOptions
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0001
+ T:Avalonia.Controls.ApplicationLifetimes.IActivatableApplicationLifetime
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
CP0001
T:Avalonia.Controls.AutoCompleteBox.BindingEvaluator`1
baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+ CP0001
+ T:Avalonia.Controls.FileDialog
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0001
+ T:Avalonia.Controls.FileDialogFilter
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0001
+ T:Avalonia.Controls.FileSystemDialog
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0001
+ T:Avalonia.Controls.Generators.TreeContainerIndex
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0001
+ T:Avalonia.Controls.Generators.TreeItemContainerGenerator
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
CP0001
T:Avalonia.Controls.NativeMenuItemToggleType
baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+ CP0001
+ T:Avalonia.Controls.OpenFileDialog
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0001
+ T:Avalonia.Controls.OpenFolderDialog
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0001
+ T:Avalonia.Controls.Platform.ISystemDialogImpl
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
CP0001
T:Avalonia.Controls.Primitives.IScrollable
baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+ CP0001
+ T:Avalonia.Controls.SaveFileDialog
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0001
+ T:Avalonia.Controls.SystemDialog
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0001
+ T:Avalonia.Platform.IApplicationPlatformEvents
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
CP0001
T:Avalonia.Markup.Xaml.ConstructorArgumentAttribute
@@ -223,24 +301,102 @@
baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+ CP0001
+ T:Avalonia.Controls.ApplicationLifetimes.ClassicDesktopStyleApplicationLifetimeOptions
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
+
+ CP0001
+ T:Avalonia.Controls.ApplicationLifetimes.IActivatableApplicationLifetime
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
CP0001
T:Avalonia.Controls.AutoCompleteBox.BindingEvaluator`1
baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
+ CP0001
+ T:Avalonia.Controls.FileDialog
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
+
+ CP0001
+ T:Avalonia.Controls.FileDialogFilter
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
+
+ CP0001
+ T:Avalonia.Controls.FileSystemDialog
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
+
+ CP0001
+ T:Avalonia.Controls.Generators.TreeContainerIndex
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
+
+ CP0001
+ T:Avalonia.Controls.Generators.TreeItemContainerGenerator
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
CP0001
T:Avalonia.Controls.NativeMenuItemToggleType
baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
+ CP0001
+ T:Avalonia.Controls.OpenFileDialog
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
+
+ CP0001
+ T:Avalonia.Controls.OpenFolderDialog
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
+
+ CP0001
+ T:Avalonia.Controls.Platform.ISystemDialogImpl
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
CP0001
T:Avalonia.Controls.Primitives.IScrollable
baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
+ CP0001
+ T:Avalonia.Controls.SaveFileDialog
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
+
+ CP0001
+ T:Avalonia.Controls.SystemDialog
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
+
+ CP0001
+ T:Avalonia.Platform.IApplicationPlatformEvents
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
CP0001
T:Avalonia.Markup.Xaml.ConstructorArgumentAttribute
@@ -673,6 +829,12 @@
baseline/Avalonia/lib/net10.0/Avalonia.Base.dll
current/Avalonia/lib/net10.0/Avalonia.Base.dll
+
+ CP0002
+ F:Avalonia.Controls.ContextMenu.PlacementModeProperty
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
CP0002
F:Avalonia.Controls.Documents.Inline.TextDecorationsProperty
@@ -691,6 +853,30 @@
baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+ CP0002
+ F:Avalonia.Controls.Primitives.Popup.PlacementModeProperty
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0002
+ F:Avalonia.Controls.Primitives.ToggleButton.CheckedEvent
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0002
+ F:Avalonia.Controls.Primitives.ToggleButton.IndeterminateEvent
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0002
+ F:Avalonia.Controls.Primitives.ToggleButton.UncheckedEvent
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
CP0002
F:Avalonia.Controls.TextBlock.LetterSpacingProperty
@@ -703,6 +889,36 @@
baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+ CP0002
+ M:Avalonia.AppBuilder.get_LifetimeOverride
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0002
+ M:Avalonia.Application.add_UrlsOpened(System.EventHandler{Avalonia.UrlOpenedEventArgs})
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0002
+ M:Avalonia.Application.remove_UrlsOpened(System.EventHandler{Avalonia.UrlOpenedEventArgs})
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0002
+ M:Avalonia.Controls.ContextMenu.get_PlacementMode
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0002
+ M:Avalonia.Controls.ContextMenu.set_PlacementMode(Avalonia.Controls.PlacementMode)
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
CP0002
M:Avalonia.Controls.Design.CreatePreviewWithControl(System.Object)
@@ -775,6 +991,24 @@
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)
@@ -787,6 +1021,30 @@
baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+ CP0002
+ M:Avalonia.Controls.Platform.IInsetsManager.get_DisplayEdgeToEdge
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0002
+ M:Avalonia.Controls.Platform.IInsetsManager.set_DisplayEdgeToEdge(System.Boolean)
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0002
+ M:Avalonia.Controls.Platform.InsetsManagerBase.get_DisplayEdgeToEdge
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0002
+ M:Avalonia.Controls.Platform.InsetsManagerBase.set_DisplayEdgeToEdge(System.Boolean)
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
CP0002
M:Avalonia.Controls.Primitives.OverlayPopupHost.ConfigurePosition(Avalonia.Visual,Avalonia.Controls.PlacementMode,Avalonia.Point,Avalonia.Controls.Primitives.PopupPositioning.PopupAnchor,Avalonia.Controls.Primitives.PopupPositioning.PopupGravity,Avalonia.Controls.Primitives.PopupPositioning.PopupPositionerConstraintAdjustment,System.Nullable{Avalonia.Rect})
@@ -799,6 +1057,18 @@
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})
@@ -817,12 +1087,96 @@
baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+ CP0002
+ M:Avalonia.Controls.Primitives.ToggleButton.add_Checked(System.EventHandler{Avalonia.Interactivity.RoutedEventArgs})
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0002
+ M:Avalonia.Controls.Primitives.ToggleButton.add_Indeterminate(System.EventHandler{Avalonia.Interactivity.RoutedEventArgs})
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0002
+ M:Avalonia.Controls.Primitives.ToggleButton.add_Unchecked(System.EventHandler{Avalonia.Interactivity.RoutedEventArgs})
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0002
+ M:Avalonia.Controls.Primitives.ToggleButton.OnChecked(Avalonia.Interactivity.RoutedEventArgs)
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0002
+ M:Avalonia.Controls.Primitives.ToggleButton.OnIndeterminate(Avalonia.Interactivity.RoutedEventArgs)
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0002
+ M:Avalonia.Controls.Primitives.ToggleButton.OnUnchecked(Avalonia.Interactivity.RoutedEventArgs)
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0002
+ M:Avalonia.Controls.Primitives.ToggleButton.remove_Checked(System.EventHandler{Avalonia.Interactivity.RoutedEventArgs})
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0002
+ M:Avalonia.Controls.Primitives.ToggleButton.remove_Indeterminate(System.EventHandler{Avalonia.Interactivity.RoutedEventArgs})
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0002
+ M:Avalonia.Controls.Primitives.ToggleButton.remove_Unchecked(System.EventHandler{Avalonia.Interactivity.RoutedEventArgs})
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0002
+ M:Avalonia.Controls.Screens.ScreenFromWindow(Avalonia.Platform.IWindowBaseImpl)
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0002
+ M:Avalonia.Controls.TabItem.SubscribeToOwnerProperties(Avalonia.AvaloniaObject)
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0002
+ M:Avalonia.Controls.TreeView.get_ItemContainerGenerator
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
CP0002
M:Avalonia.Platform.Screen.#ctor(System.Double,Avalonia.PixelRect,Avalonia.PixelRect,System.Boolean)
baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+ CP0002
+ M:Avalonia.Platform.Screen.get_PixelDensity
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
+
+ CP0002
+ M:Avalonia.Platform.Screen.get_Primary
+ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net10.0/Avalonia.Controls.dll
+
CP0002
M:Avalonia.Platform.Screen.set_Bounds(Avalonia.PixelRect)
@@ -859,6 +1213,18 @@
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)
@@ -1321,6 +1687,12 @@
baseline/Avalonia/lib/net8.0/Avalonia.Base.dll
current/Avalonia/lib/net8.0/Avalonia.Base.dll
+
+ CP0002
+ F:Avalonia.Controls.ContextMenu.PlacementModeProperty
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
CP0002
F:Avalonia.Controls.Documents.Inline.TextDecorationsProperty
@@ -1339,6 +1711,30 @@
baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
+ CP0002
+ F:Avalonia.Controls.Primitives.Popup.PlacementModeProperty
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
+
+ CP0002
+ F:Avalonia.Controls.Primitives.ToggleButton.CheckedEvent
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
+
+ CP0002
+ F:Avalonia.Controls.Primitives.ToggleButton.IndeterminateEvent
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
+
+ CP0002
+ F:Avalonia.Controls.Primitives.ToggleButton.UncheckedEvent
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
CP0002
F:Avalonia.Controls.TextBlock.LetterSpacingProperty
@@ -1351,6 +1747,36 @@
baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
+ CP0002
+ M:Avalonia.AppBuilder.get_LifetimeOverride
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
+
+ CP0002
+ M:Avalonia.Application.add_UrlsOpened(System.EventHandler{Avalonia.UrlOpenedEventArgs})
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
+
+ CP0002
+ M:Avalonia.Application.remove_UrlsOpened(System.EventHandler{Avalonia.UrlOpenedEventArgs})
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
+
+ CP0002
+ M:Avalonia.Controls.ContextMenu.get_PlacementMode
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
+
+ CP0002
+ M:Avalonia.Controls.ContextMenu.set_PlacementMode(Avalonia.Controls.PlacementMode)
+ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll
+ current/Avalonia/lib/net8.0/Avalonia.Controls.dll
+
CP0002
M:Avalonia.Controls.Design.CreatePreviewWithControl(System.Object)
@@ -1423,6 +1849,24 @@
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)
@@ -1435,6 +1879,30 @@
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.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})
@@ -1447,6 +1915,18 @@
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})
@@ -1465,12 +1945,96 @@
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.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.TabItem.SubscribeToOwnerProperties(Avalonia.AvaloniaObject)
+ 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.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)
@@ -1513,6 +2077,18 @@
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)
diff --git a/samples/ControlCatalog/Pages/DialogsPage.xaml b/samples/ControlCatalog/Pages/DialogsPage.xaml
index f32cc601ab..e6b3568909 100644
--- a/samples/ControlCatalog/Pages/DialogsPage.xaml
+++ b/samples/ControlCatalog/Pages/DialogsPage.xaml
@@ -49,15 +49,6 @@
-
-
-
-
-
-
-
-
-
diff --git a/samples/ControlCatalog/Pages/DialogsPage.xaml.cs b/samples/ControlCatalog/Pages/DialogsPage.xaml.cs
index 0e2ad7d2b9..892e320afc 100644
--- a/samples/ControlCatalog/Pages/DialogsPage.xaml.cs
+++ b/samples/ControlCatalog/Pages/DialogsPage.xaml.cs
@@ -1,23 +1,14 @@
using System;
using System.Buffers;
using System.Collections.Generic;
-using System.IO;
using System.Linq;
-using System.Reflection;
using System.Security;
-using System.Text;
using System.Threading.Tasks;
using Avalonia;
using Avalonia.Controls;
-using Avalonia.Controls.Presenters;
using Avalonia.Dialogs;
using Avalonia.Layout;
-using Avalonia.Markup.Xaml;
using Avalonia.Platform.Storage;
-using Avalonia.Platform.Storage.FileIO;
-
-#pragma warning disable CS0618 // Type or member is obsolete
-#nullable enable
namespace ControlCatalog.Pages
{
@@ -70,14 +61,6 @@ namespace ControlCatalog.Pages
};
- List GetFilters()
- {
- return GetFileTypes()?.Select(f => new FileDialogFilter
- {
- Name = f.Name, Extensions = f.Patterns!.ToList()
- }).ToList() ?? new List();
- }
-
List? BuildFileTypes()
{
var selectedItem = (FilterSelector.SelectedItem as ComboBoxItem)?.Content
@@ -168,88 +151,12 @@ namespace ControlCatalog.Pages
void UpdateSuggestedFilterSelectorState() =>
suggestedFilterSelector.IsEnabled = useSuggestedFilter.IsChecked == true;
- useSuggestedFilter.Checked += (_, _) => UpdateSuggestedFilterSelectorState();
- useSuggestedFilter.Unchecked += (_, _) => UpdateSuggestedFilterSelectorState();
+ useSuggestedFilter.IsCheckedChanged += (_, _) => UpdateSuggestedFilterSelectorState();
UpdateSuggestedFilterSelectorState();
FilterSelector.SelectionChanged += (_, _) => UpdateSuggestedFilterSelector(BuildFileTypes());
UpdateSuggestedFilterSelector(BuildFileTypes());
- OpenFile.Click += async delegate
- {
- // Almost guaranteed to exist
- var uri = Assembly.GetEntryAssembly()?.GetModules().FirstOrDefault()?.FullyQualifiedName;
- var initialFileName = uri == null ? null : System.IO.Path.GetFileName(uri);
- var initialDirectory = uri == null ? null : System.IO.Path.GetDirectoryName(uri);
-
- var result = await new OpenFileDialog()
- {
- Title = "Open file",
- Filters = GetFilters(),
- Directory = initialDirectory,
- InitialFileName = initialFileName
- }.ShowAsync(GetWindow());
- results.ItemsSource = result;
- resultsVisible.IsVisible = result?.Any() == true;
- };
- OpenMultipleFiles.Click += async delegate
- {
- var result = await new OpenFileDialog()
- {
- Title = "Open multiple files",
- Filters = GetFilters(),
- Directory = lastSelectedDirectory?.Path is {IsAbsoluteUri:true} path ? path.LocalPath : null,
- AllowMultiple = true
- }.ShowAsync(GetWindow());
- results.ItemsSource = result;
- resultsVisible.IsVisible = result?.Any() == true;
- };
- SaveFile.Click += async delegate
- {
- var filters = GetFilters();
- var result = await new SaveFileDialog()
- {
- Title = "Save file",
- Filters = filters,
- Directory = lastSelectedDirectory?.Path is {IsAbsoluteUri:true} path ? path.LocalPath : null,
- DefaultExtension = filters?.Any() == true ? "txt" : null,
- InitialFileName = "test.txt"
- }.ShowAsync(GetWindow());
- results.ItemsSource = new[] { result };
- resultsVisible.IsVisible = result != null;
- };
- SelectFolder.Click += async delegate
- {
- var result = await new OpenFolderDialog()
- {
- Title = "Select folder",
- Directory = lastSelectedDirectory?.Path is {IsAbsoluteUri:true} path ? path.LocalPath : null,
- }.ShowAsync(GetWindow());
- if (string.IsNullOrEmpty(result))
- {
- resultsVisible.IsVisible = false;
- }
- else
- {
- SetFolder(await GetStorageProvider().TryGetFolderFromPathAsync(result!));
- results.ItemsSource = new[] { result };
- resultsVisible.IsVisible = true;
- }
- };
- OpenBoth.Click += async delegate
- {
- var result = await new OpenFileDialog()
- {
- Title = "Select both",
- Directory = lastSelectedDirectory?.Path is {IsAbsoluteUri:true} path ? path.LocalPath : null,
- AllowMultiple = true
- }.ShowManagedAsync(GetWindow(), new ManagedFileDialogOptions
- {
- AllowDirectorySelection = true
- });
- results.ItemsSource = result;
- resultsVisible.IsVisible = result?.Any() == true;
- };
DecoratedWindow.Click += delegate
{
new DecoratedWindow().Show();
diff --git a/src/Android/Avalonia.Android/Platform/AndroidInsetsManager.cs b/src/Android/Avalonia.Android/Platform/AndroidInsetsManager.cs
index 4991a7547f..a8ab825808 100644
--- a/src/Android/Avalonia.Android/Platform/AndroidInsetsManager.cs
+++ b/src/Android/Avalonia.Android/Platform/AndroidInsetsManager.cs
@@ -318,8 +318,6 @@ namespace Avalonia.Android.Platform
}
}
- public bool DisplayEdgeToEdge { get => DisplaysEdgeToEdge; set => DisplayEdgeToEdgePreference = value; }
-
public bool DisplaysEdgeToEdge => _displaysEdgeToEdge;
internal void ApplyStatusBarState()
diff --git a/src/Avalonia.Controls/AppBuilder.cs b/src/Avalonia.Controls/AppBuilder.cs
index dbf8482ee7..9d6bcff813 100644
--- a/src/Avalonia.Controls/AppBuilder.cs
+++ b/src/Avalonia.Controls/AppBuilder.cs
@@ -1,11 +1,8 @@
using System;
-using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System.Reflection;
-using System.Linq;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Platform;
-using Avalonia.Media.Fonts;
using Avalonia.Media;
using Avalonia.Metadata;
@@ -56,13 +53,6 @@ namespace Avalonia
///
public Action? RenderingSubsystemInitializer { get; private set; }
- ///
- /// Gets a method to override a lifetime factory.
- ///
- [Obsolete("This property has no effect", true)]
- [DebuggerBrowsable(DebuggerBrowsableState.Never)]
- public Func? LifetimeOverride { get; private set; }
-
///
/// Gets the name of the currently selected rendering subsystem.
///
diff --git a/src/Avalonia.Controls/Application.cs b/src/Avalonia.Controls/Application.cs
index ff04499c42..90e272c7bd 100644
--- a/src/Avalonia.Controls/Application.cs
+++ b/src/Avalonia.Controls/Application.cs
@@ -30,7 +30,7 @@ namespace Avalonia
/// method.
/// - Tracks the lifetime of the application.
///
- public class Application : AvaloniaObject, IDataContextProvider, IGlobalDataTemplates, IGlobalStyles, IThemeVariantHost, IResourceHost, IApplicationPlatformEvents, IOptionalFeatureProvider
+ public class Application : AvaloniaObject, IDataContextProvider, IGlobalDataTemplates, IGlobalStyles, IThemeVariantHost, IResourceHost, IOptionalFeatureProvider
{
///
/// The application-global data templates.
@@ -61,9 +61,6 @@ namespace Avalonia
///
public event EventHandler? ResourcesChanged;
- [Obsolete("Use Application.Current.TryGetFeature() instead.")]
- public event EventHandler? UrlsOpened;
-
///
public event EventHandler? ActualThemeVariantChanged;
@@ -177,8 +174,8 @@ namespace Avalonia
/// Currently supported lifetimes are:
/// -
/// -
- /// -
- /// -
+ /// -
+ /// -
///
public IApplicationLifetime? ApplicationLifetime
{
@@ -283,11 +280,6 @@ namespace Avalonia
public virtual void OnFrameworkInitializationCompleted()
{
}
-
- void IApplicationPlatformEvents.RaiseUrlsOpened(string[] urls)
- {
- UrlsOpened?.Invoke(this, new UrlOpenedEventArgs (urls));
- }
private string? _name;
///
diff --git a/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs b/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs
index 35e63e8ef5..8d509832fa 100644
--- a/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs
+++ b/src/Avalonia.Controls/ApplicationLifetimes/ClassicDesktopStyleApplicationLifetime.cs
@@ -99,16 +99,6 @@ namespace Avalonia.Controls.ApplicationLifetimes
Startup?.Invoke(this, new ControlledApplicationLifetimeStartupEventArgs(args));
- var options = AvaloniaLocator.Current.GetService();
-
- if(options != null && options.ProcessUrlActivationCommandLine && args.Length > 0)
- {
- if (Application.Current is IApplicationPlatformEvents events)
- {
- events.RaiseUrlsOpened(args);
- }
- }
-
var lifetimeEvents = AvaloniaLocator.Current.GetService();
if (lifetimeEvents != null)
@@ -223,11 +213,6 @@ namespace Avalonia.Controls.ApplicationLifetimes
private void OnShutdownRequested(object? sender, ShutdownRequestedEventArgs e) => DoShutdown(e, false);
}
-
- public class ClassicDesktopStyleApplicationLifetimeOptions
- {
- public bool ProcessUrlActivationCommandLine { get; set; }
- }
}
namespace Avalonia
diff --git a/src/Avalonia.Controls/ApplicationLifetimes/IActivatableApplicationLifetime.cs b/src/Avalonia.Controls/ApplicationLifetimes/IActivatableApplicationLifetime.cs
index e07e8cd6a1..23e3546d50 100644
--- a/src/Avalonia.Controls/ApplicationLifetimes/IActivatableApplicationLifetime.cs
+++ b/src/Avalonia.Controls/ApplicationLifetimes/IActivatableApplicationLifetime.cs
@@ -1,15 +1,8 @@
using System;
-using System.Diagnostics;
using Avalonia.Metadata;
namespace Avalonia.Controls.ApplicationLifetimes;
-[NotClientImplementable]
-[Obsolete("This interface has no effect. Instead use Application.Current.TryGetFeature().", true)]
-public interface IActivatableApplicationLifetime : IActivatableLifetime {
-
-}
-
///
/// An interface for ApplicationLifetimes where the application can be Activated and Deactivated.
///
diff --git a/src/Avalonia.Controls/ContextMenu.cs b/src/Avalonia.Controls/ContextMenu.cs
index e8c36546ba..7790251f81 100644
--- a/src/Avalonia.Controls/ContextMenu.cs
+++ b/src/Avalonia.Controls/ContextMenu.cs
@@ -53,17 +53,9 @@ namespace Avalonia.Controls
///
/// Defines the property.
///
- [System.Diagnostics.CodeAnalysis.SuppressMessage("AvaloniaProperty", "AVP1013",
- Justification = "We keep PlacementModeProperty for backward compatibility.")]
public static readonly StyledProperty PlacementProperty =
Popup.PlacementProperty.AddOwner();
- ///
- /// Defines the property.
- ///
- [Obsolete("Use the Placement property instead."), EditorBrowsable(EditorBrowsableState.Never)]
- public static readonly StyledProperty PlacementModeProperty = PlacementProperty;
-
///
/// Defines the property.
///
@@ -154,14 +146,6 @@ namespace Avalonia.Controls
set => SetValue(PlacementGravityProperty, value);
}
- ///
- [Obsolete("Use the Placement property instead."), EditorBrowsable(EditorBrowsableState.Never)]
- public PlacementMode PlacementMode
- {
- get => GetValue(PlacementProperty);
- set => SetValue(PlacementProperty, value);
- }
-
///
public PlacementMode Placement
{
diff --git a/src/Avalonia.Controls/Generators/ItemContainerGenerator.cs b/src/Avalonia.Controls/Generators/ItemContainerGenerator.cs
index 91e8dae0a1..272bedb3cc 100644
--- a/src/Avalonia.Controls/Generators/ItemContainerGenerator.cs
+++ b/src/Avalonia.Controls/Generators/ItemContainerGenerator.cs
@@ -156,11 +156,5 @@ namespace Avalonia.Controls.Generators
/// returned false for the item.
///
public void ClearItemContainer(Control container) => _owner.ClearItemContainer(container);
-
- [Obsolete("Use ItemsControl.ContainerFromIndex"), EditorBrowsable(EditorBrowsableState.Never)]
- public Control? ContainerFromIndex(int index) => _owner.ContainerFromIndex(index);
-
- [Obsolete("Use ItemsControl.IndexFromContainer"), EditorBrowsable(EditorBrowsableState.Never)]
- public int IndexFromContainer(Control container) => _owner.IndexFromContainer(container);
}
}
diff --git a/src/Avalonia.Controls/Generators/TreeItemContainerGenerator.cs b/src/Avalonia.Controls/Generators/TreeItemContainerGenerator.cs
deleted file mode 100644
index 717dadb6ea..0000000000
--- a/src/Avalonia.Controls/Generators/TreeItemContainerGenerator.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-
-namespace Avalonia.Controls.Generators
-{
- public class TreeItemContainerGenerator : ItemContainerGenerator
- {
- internal TreeItemContainerGenerator(TreeView owner)
- : base(owner)
- {
- Index = new TreeContainerIndex(owner);
- }
-
- public TreeContainerIndex Index { get; }
- }
-
- public class TreeContainerIndex
- {
- private readonly TreeView _owner;
-
- internal TreeContainerIndex(TreeView owner) => _owner = owner;
-
- [Obsolete("Use TreeView.GetRealizedTreeContainers"), EditorBrowsable(EditorBrowsableState.Never)]
- public IEnumerable Containers => _owner.GetRealizedTreeContainers();
-
- [Obsolete("Use TreeView.TreeContainerFromItem"), EditorBrowsable(EditorBrowsableState.Never)]
- public Control? ContainerFromItem(object item) => _owner.TreeContainerFromItem(item);
-
- [Obsolete("Use TreeView.TreeItemFromContainer"), EditorBrowsable(EditorBrowsableState.Never)]
- public object? ItemFromContainer(Control container) => _owner.TreeItemFromContainer(container);
- }
-}
diff --git a/src/Avalonia.Controls/ItemsControl.cs b/src/Avalonia.Controls/ItemsControl.cs
index a9cf4ca8d8..c176f3aeee 100644
--- a/src/Avalonia.Controls/ItemsControl.cs
+++ b/src/Avalonia.Controls/ItemsControl.cs
@@ -101,11 +101,7 @@ namespace Avalonia.Controls
/// Gets the for the control.
///
public ItemContainerGenerator ItemContainerGenerator
- {
-#pragma warning disable CS0612 // Type or member is obsolete
- get => _itemContainerGenerator ??= CreateItemContainerGenerator();
-#pragma warning restore CS0612 // Type or member is obsolete
- }
+ => _itemContainerGenerator ??= new ItemContainerGenerator(this);
///
/// Gets the items to display.
@@ -319,19 +315,6 @@ namespace Avalonia.Controls
/// The item.
public void ScrollIntoView(object item) => ScrollIntoView(ItemsView.IndexOf(item));
- ///
- /// Returns the that owns the specified container control.
- ///
- /// The container.
- ///
- /// The owning or null if the control is not an items container.
- ///
- [Obsolete("Typo, use ItemsControlFromItemContainer instead")]
- [EditorBrowsable(EditorBrowsableState.Never)]
- [Browsable(false)]
- public static ItemsControl? ItemsControlFromItemContaner(Control container) =>
- ItemsControlFromItemContainer(container);
-
///
/// Returns the that owns the specified container control.
///
@@ -672,20 +655,6 @@ namespace Avalonia.Controls
ItemCount = ItemsView.Count;
}
- ///
- /// Creates the
- ///
- ///
- /// This method is only present for backwards compatibility with 0.10.x in order for
- /// TreeView to be able to create a . Can be
- /// removed in 12.0.
- ///
- [Obsolete, EditorBrowsable(EditorBrowsableState.Never)]
- private protected virtual ItemContainerGenerator CreateItemContainerGenerator()
- {
- return new ItemContainerGenerator(this);
- }
-
internal void AddLogicalChild(Control c)
{
if (!LogicalChildren.Contains(c))
diff --git a/src/Avalonia.Controls/Platform/Dialogs/ISystemDialogImpl.cs b/src/Avalonia.Controls/Platform/Dialogs/ISystemDialogImpl.cs
deleted file mode 100644
index a593caecaf..0000000000
--- a/src/Avalonia.Controls/Platform/Dialogs/ISystemDialogImpl.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using System;
-using System.ComponentModel;
-using System.Threading.Tasks;
-using Avalonia.Metadata;
-
-namespace Avalonia.Controls.Platform
-{
- ///
- /// Defines a platform-specific system dialog implementation.
- ///
- [Obsolete("Use Window.StorageProvider API or TopLevel.StorageProvider API"), EditorBrowsable(EditorBrowsableState.Never)]
- [Unstable]
- public interface ISystemDialogImpl
- {
- ///
- /// Shows a file dialog.
- ///
- /// The details of the file dialog to show.
- /// The parent window.
- /// A task returning the selected filenames.
- Task ShowFileDialogAsync(FileDialog dialog, Window parent);
-
- Task ShowFolderDialogAsync(OpenFolderDialog dialog, Window parent);
- }
-}
diff --git a/src/Avalonia.Controls/Platform/Dialogs/SystemDialogImpl.cs b/src/Avalonia.Controls/Platform/Dialogs/SystemDialogImpl.cs
deleted file mode 100644
index b2d193fcaf..0000000000
--- a/src/Avalonia.Controls/Platform/Dialogs/SystemDialogImpl.cs
+++ /dev/null
@@ -1,70 +0,0 @@
-using System;
-using System.ComponentModel;
-using System.Linq;
-using System.Threading.Tasks;
-using Avalonia.Platform.Storage;
-
-namespace Avalonia.Controls.Platform
-{
- ///
- /// Defines a platform-specific system dialog implementation.
- ///
- [Obsolete, EditorBrowsable(EditorBrowsableState.Never)]
- internal class SystemDialogImpl : ISystemDialogImpl
- {
- public async Task ShowFileDialogAsync(FileDialog dialog, Window parent)
- {
- if (dialog is OpenFileDialog openDialog)
- {
- var filePicker = parent.StorageProvider;
- if (!filePicker.CanOpen)
- {
- return null;
- }
-
- var options = openDialog.ToFilePickerOpenOptions();
-
- var files = await filePicker.OpenFilePickerAsync(options);
- return files
- .Select(file => file.TryGetLocalPath() ?? file.Name)
- .ToArray();
- }
- else if (dialog is SaveFileDialog saveDialog)
- {
- var filePicker = parent.StorageProvider;
- if (!filePicker.CanSave)
- {
- return null;
- }
-
- var options = saveDialog.ToFilePickerSaveOptions();
-
- var file = await filePicker.SaveFilePickerAsync(options);
- if (file is null)
- {
- return null;
- }
-
- var filePath = file.TryGetLocalPath() ?? file.Name;
- return new[] { filePath };
- }
- return null;
- }
-
- public async Task ShowFolderDialogAsync(OpenFolderDialog dialog, Window parent)
- {
- var filePicker = parent.StorageProvider;
- if (!filePicker.CanPickFolder)
- {
- return null;
- }
-
- var options = dialog.ToFolderPickerOpenOptions();
-
- var folders = await filePicker.OpenFolderPickerAsync(options);
- return folders
- .Select(folder => folder.TryGetLocalPath() ?? folder.Name)
- .FirstOrDefault(u => u is not null);
- }
- }
-}
diff --git a/src/Avalonia.Controls/Platform/IApplicationPlatformEvents.cs b/src/Avalonia.Controls/Platform/IApplicationPlatformEvents.cs
deleted file mode 100644
index dade84afc4..0000000000
--- a/src/Avalonia.Controls/Platform/IApplicationPlatformEvents.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using Avalonia.Metadata;
-
-namespace Avalonia.Platform
-{
- [Unstable("This interface will be removed in 12.0.")]
- public interface IApplicationPlatformEvents
- {
- void RaiseUrlsOpened(string[] urls);
- }
-}
diff --git a/src/Avalonia.Controls/Platform/IInsetsManager.cs b/src/Avalonia.Controls/Platform/IInsetsManager.cs
index fb68e980f4..1cbd1d64f4 100644
--- a/src/Avalonia.Controls/Platform/IInsetsManager.cs
+++ b/src/Avalonia.Controls/Platform/IInsetsManager.cs
@@ -3,7 +3,6 @@ using Avalonia.Media;
using Avalonia.Metadata;
using Avalonia.Threading;
-#nullable enable
namespace Avalonia.Controls.Platform
{
[NotClientImplementable]
@@ -19,13 +18,6 @@ namespace Avalonia.Controls.Platform
///
bool DisplayEdgeToEdgePreference { get; set; }
-
- ///
- /// Gets or sets whether the window draws edge to edge. behind any visible system bars.
- ///
- [Obsolete("Use DisplayEdgeToEdgePreference")]
- bool DisplayEdgeToEdge { get; set; }
-
///
/// Gets whether the window is currently displaying edge to edge.
///
@@ -52,7 +44,6 @@ namespace Avalonia.Controls.Platform
{
public virtual bool? IsSystemBarVisible { get; set; }
public virtual bool DisplayEdgeToEdgePreference { get; set; }
- public virtual bool DisplayEdgeToEdge { get => DisplaysEdgeToEdge; set => DisplayEdgeToEdgePreference = value; }
public virtual Thickness SafeAreaPadding { get; protected set; }
public virtual Color? SystemBarColor { get; set; }
public virtual bool DisplaysEdgeToEdge => DisplayEdgeToEdgePreference;
diff --git a/src/Avalonia.Controls/Platform/Screen.cs b/src/Avalonia.Controls/Platform/Screen.cs
index c3b62860c7..493a5cc941 100644
--- a/src/Avalonia.Controls/Platform/Screen.cs
+++ b/src/Avalonia.Controls/Platform/Screen.cs
@@ -63,10 +63,6 @@ namespace Avalonia.Platform
///
public double Scaling { get; protected set; } = 1;
- ///
- [Obsolete("Use the Scaling property instead.", true), EditorBrowsable(EditorBrowsableState.Never)]
- public double PixelDensity => Scaling;
-
///
/// Gets the overall pixel-size and position of the screen.
///
@@ -89,10 +85,6 @@ namespace Avalonia.Platform
///
public bool IsPrimary { get; protected set; }
- ///
- [Obsolete("Use the IsPrimary property instead.", true), EditorBrowsable(EditorBrowsableState.Never)]
- public bool Primary => IsPrimary;
-
private protected Screen() { }
///
diff --git a/src/Avalonia.Controls/Primitives/Popup.cs b/src/Avalonia.Controls/Primitives/Popup.cs
index 6de5b1ea78..76fa73f4c3 100644
--- a/src/Avalonia.Controls/Primitives/Popup.cs
+++ b/src/Avalonia.Controls/Primitives/Popup.cs
@@ -76,12 +76,6 @@ namespace Avalonia.Controls.Primitives
public static readonly StyledProperty PlacementProperty =
AvaloniaProperty.Register(nameof(Placement), defaultValue: PlacementMode.Bottom);
- ///
- /// Defines the property.
- ///
- [Obsolete("Use the Placement property instead."), EditorBrowsable(EditorBrowsableState.Never)]
- public static readonly StyledProperty PlacementModeProperty = PlacementProperty;
-
///
/// Defines the property.
///
@@ -277,14 +271,6 @@ namespace Avalonia.Controls.Primitives
set => SetValue(PlacementGravityProperty, value);
}
- ///
- [Obsolete("Use the Placement property instead."), EditorBrowsable(EditorBrowsableState.Never)]
- public PlacementMode PlacementMode
- {
- get => GetValue(PlacementProperty);
- set => SetValue(PlacementProperty, value);
- }
-
///
/// Gets or sets the desired placement of the popup in relation to the .
///
diff --git a/src/Avalonia.Controls/Primitives/ToggleButton.cs b/src/Avalonia.Controls/Primitives/ToggleButton.cs
index fa1bc76de4..2a5c1c3cf3 100644
--- a/src/Avalonia.Controls/Primitives/ToggleButton.cs
+++ b/src/Avalonia.Controls/Primitives/ToggleButton.cs
@@ -26,33 +26,6 @@ namespace Avalonia.Controls.Primitives
public static readonly StyledProperty IsThreeStateProperty =
AvaloniaProperty.Register(nameof(IsThreeState));
- ///
- /// Defines the event.
- ///
- [Obsolete("Use IsCheckedChangedEvent instead."), EditorBrowsable(EditorBrowsableState.Never)]
- public static readonly RoutedEvent CheckedEvent =
- RoutedEvent.Register(
- nameof(Checked),
- RoutingStrategies.Bubble);
-
- ///
- /// Defines the event.
- ///
- [Obsolete("Use IsCheckedChangedEvent instead."), EditorBrowsable(EditorBrowsableState.Never)]
- public static readonly RoutedEvent UncheckedEvent =
- RoutedEvent.Register(
- nameof(Unchecked),
- RoutingStrategies.Bubble);
-
- ///
- /// Defines the event.
- ///
- [Obsolete("Use IsCheckedChangedEvent instead."), EditorBrowsable(EditorBrowsableState.Never)]
- public static readonly RoutedEvent IndeterminateEvent =
- RoutedEvent.Register(
- nameof(Indeterminate),
- RoutingStrategies.Bubble);
-
///
/// Defines the event.
///
@@ -70,36 +43,6 @@ namespace Avalonia.Controls.Primitives
UpdatePseudoClasses(IsChecked);
}
- ///
- /// Raised when a is checked.
- ///
- [Obsolete("Use IsCheckedChanged instead."), EditorBrowsable(EditorBrowsableState.Never)]
- public event EventHandler? Checked
- {
- add => AddHandler(CheckedEvent, value);
- remove => RemoveHandler(CheckedEvent, value);
- }
-
- ///
- /// Raised when a is unchecked.
- ///
- [Obsolete("Use IsCheckedChanged instead."), EditorBrowsable(EditorBrowsableState.Never)]
- public event EventHandler? Unchecked
- {
- add => AddHandler(UncheckedEvent, value);
- remove => RemoveHandler(UncheckedEvent, value);
- }
-
- ///
- /// Raised when a is neither checked nor unchecked.
- ///
- [Obsolete("Use IsCheckedChanged instead."), EditorBrowsable(EditorBrowsableState.Never)]
- public event EventHandler? Indeterminate
- {
- add => AddHandler(IndeterminateEvent, value);
- remove => RemoveHandler(IndeterminateEvent, value);
- }
-
///
/// Raised when the property value changes.
///
@@ -165,36 +108,6 @@ namespace Avalonia.Controls.Primitives
SetCurrentValue(IsCheckedProperty, newValue);
}
- ///
- /// Called when becomes true.
- ///
- /// Event arguments for the routed event that is raised by the default implementation of this method.
- [Obsolete("Use OnIsCheckedChanged instead."), EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual void OnChecked(RoutedEventArgs e)
- {
- RaiseEvent(e);
- }
-
- ///
- /// Called when becomes false.
- ///
- /// Event arguments for the routed event that is raised by the default implementation of this method.
- [Obsolete("Use OnIsCheckedChanged instead."), EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual void OnUnchecked(RoutedEventArgs e)
- {
- RaiseEvent(e);
- }
-
- ///
- /// Called when becomes null.
- ///
- /// Event arguments for the routed event that is raised by the default implementation of this method.
- [Obsolete("Use OnIsCheckedChanged instead."), EditorBrowsable(EditorBrowsableState.Never)]
- protected virtual void OnIndeterminate(RoutedEventArgs e)
- {
- RaiseEvent(e);
- }
-
///
/// Called when changes.
///
@@ -217,24 +130,7 @@ namespace Avalonia.Controls.Primitives
if (change.Property == IsCheckedProperty)
{
var newValue = change.GetNewValue();
-
UpdatePseudoClasses(newValue);
-
-#pragma warning disable CS0618 // Type or member is obsolete
- switch (newValue)
- {
- case true:
- OnChecked(new RoutedEventArgs(CheckedEvent));
- break;
- case false:
- OnUnchecked(new RoutedEventArgs(UncheckedEvent));
- break;
- default:
- OnIndeterminate(new RoutedEventArgs(IndeterminateEvent));
- break;
- }
-#pragma warning restore CS0618 // Type or member is obsolete
-
OnIsCheckedChanged(new RoutedEventArgs(IsCheckedChangedEvent));
}
}
diff --git a/src/Avalonia.Controls/Screens.cs b/src/Avalonia.Controls/Screens.cs
index d940900e2c..4d6e88963d 100644
--- a/src/Avalonia.Controls/Screens.cs
+++ b/src/Avalonia.Controls/Screens.cs
@@ -116,17 +116,6 @@ namespace Avalonia.Controls
return _iScreenImpl.ScreenFromTopLevel(topLevel.PlatformImpl);
}
- ///
- /// Retrieves a Screen for the display that contains the specified .
- ///
- /// The window impl for which to retrieve the Screen.
- /// The .
- [Obsolete("Use ScreenFromWindow(WindowBase) overload.", true), EditorBrowsable(EditorBrowsableState.Never)]
- public Screen? ScreenFromWindow(IWindowBaseImpl window)
- {
- return _iScreenImpl.ScreenFromWindow(window);
- }
-
///
/// Retrieves a Screen for the display that contains the specified point.
///
diff --git a/src/Avalonia.Controls/SystemDialog.cs b/src/Avalonia.Controls/SystemDialog.cs
deleted file mode 100644
index 8d4dab11d7..0000000000
--- a/src/Avalonia.Controls/SystemDialog.cs
+++ /dev/null
@@ -1,206 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Threading.Tasks;
-using Avalonia.Controls.Platform;
-using Avalonia.Platform.Storage;
-using Avalonia.Platform.Storage.FileIO;
-
-namespace Avalonia.Controls
-{
- ///
- /// Base class for system file dialogs.
- ///
- [Obsolete("Use Window.StorageProvider API or TopLevel.StorageProvider API"), EditorBrowsable(EditorBrowsableState.Never)]
- public abstract class FileDialog : FileSystemDialog
- {
- ///
- /// Gets or sets a collection of filters which determine the types of files displayed in an
- /// or an .
- ///
- public List Filters { get; set; } = new List();
-
- ///
- /// Gets or sets initial file name that is displayed when the dialog is opened.
- ///
- public string? InitialFileName { get; set; }
- }
-
- ///
- /// Base class for system file and directory dialogs.
- ///
- [Obsolete("Use Window.StorageProvider API or TopLevel.StorageProvider API"), EditorBrowsable(EditorBrowsableState.Never)]
- public abstract class FileSystemDialog : SystemDialog
- {
- ///
- /// Gets or sets the initial directory that will be displayed when the file system dialog
- /// is opened.
- ///
- public string? Directory { get; set; }
- }
-
- ///
- /// Represents a system dialog that prompts the user to select a location for saving a file.
- ///
- [Obsolete("Use Window.StorageProvider API or TopLevel.StorageProvider API"), EditorBrowsable(EditorBrowsableState.Never)]
- public class SaveFileDialog : FileDialog
- {
- ///
- /// Gets or sets the default extension to be used to save the file (including the period ".").
- ///
- public string? DefaultExtension { get; set; }
-
- ///
- /// Gets or sets a value indicating whether to display a warning if the user specifies the name of a file that already exists.
- ///
- public bool? ShowOverwritePrompt { get; set; }
-
- ///
- /// Shows the save file dialog.
- ///
- /// The parent window.
- ///
- /// A task that on completion contains the full path of the save location, or null if the
- /// dialog was canceled.
- ///
- public async Task ShowAsync(Window parent)
- {
- if(parent == null)
- throw new ArgumentNullException(nameof(parent));
- var service = AvaloniaLocator.Current.GetRequiredService();
- return (await service.ShowFileDialogAsync(this, parent) ??
- Array.Empty()).FirstOrDefault();
- }
-
- public FilePickerSaveOptions ToFilePickerSaveOptions()
- {
- return new FilePickerSaveOptions
- {
- SuggestedFileName = InitialFileName,
- DefaultExtension = DefaultExtension,
- FileTypeChoices = Filters?.Select(f => new FilePickerFileType(f.Name!) { Patterns = f.Extensions.Select(e => $"*.{e}").ToArray() }).ToArray(),
- Title = Title,
- SuggestedStartLocation = Directory is { } directory
- ? new BclStorageFolder(new System.IO.DirectoryInfo(directory))
- : null,
- ShowOverwritePrompt = ShowOverwritePrompt
- };
- }
- }
-
- ///
- /// Represents a system dialog that allows the user to select one or more files to open.
- ///
- [Obsolete("Use Window.StorageProvider API or TopLevel.StorageProvider API"), EditorBrowsable(EditorBrowsableState.Never)]
- public class OpenFileDialog : FileDialog
- {
- ///
- /// Gets or sets a value indicating whether the user can select multiple files.
- ///
- public bool AllowMultiple { get; set; }
-
- ///
- /// Shows the open file dialog.
- ///
- /// The parent window.
- ///
- /// A task that on completion returns an array containing the full path to the selected
- /// files, or null if the dialog was canceled.
- ///
- public Task ShowAsync(Window parent)
- {
- if(parent == null)
- throw new ArgumentNullException(nameof(parent));
- var service = AvaloniaLocator.Current.GetRequiredService();
- return service.ShowFileDialogAsync(this, parent);
- }
-
- public FilePickerOpenOptions ToFilePickerOpenOptions()
- {
- return new FilePickerOpenOptions
- {
- AllowMultiple = AllowMultiple,
- FileTypeFilter = Filters?.Select(f => new FilePickerFileType(f.Name!) { Patterns = f.Extensions.Select(e => $"*.{e}").ToArray() }).ToArray(),
- Title = Title,
- SuggestedStartLocation = Directory is { } directory
- ? new BclStorageFolder(new System.IO.DirectoryInfo(directory))
- : null
- };
- }
- }
-
- ///
- /// Represents a system dialog that allows the user to select a directory.
- ///
- [Obsolete("Use Window.StorageProvider API or TopLevel.StorageProvider API"), EditorBrowsable(EditorBrowsableState.Never)]
- public class OpenFolderDialog : FileSystemDialog
- {
- ///
- /// Shows the open folder dialog.
- ///
- /// The parent window.
- ///
- /// A task that on completion returns the full path of the selected directory, or null if the
- /// dialog was canceled.
- ///
- public Task ShowAsync(Window parent)
- {
- if(parent == null)
- throw new ArgumentNullException(nameof(parent));
- var service = AvaloniaLocator.Current.GetRequiredService();
- return service.ShowFolderDialogAsync(this, parent);
- }
-
- public FolderPickerOpenOptions ToFolderPickerOpenOptions()
- {
- return new FolderPickerOpenOptions
- {
- Title = Title,
- SuggestedStartLocation = Directory is { } directory
- ? new BclStorageFolder(new System.IO.DirectoryInfo(directory))
- : null
- };
- }
- }
-
-
- ///
- /// Base class for system dialogs.
- ///
- [Obsolete("Use Window.StorageProvider API or TopLevel.StorageProvider API"), EditorBrowsable(EditorBrowsableState.Never)]
- public abstract class SystemDialog
- {
- static SystemDialog()
- {
- if (AvaloniaLocator.Current.GetService() is null)
- {
- // Register default implementation.
- AvaloniaLocator.CurrentMutable.Bind().ToSingleton();
- }
- }
-
- ///
- /// Gets or sets the dialog title.
- ///
- public string? Title { get; set; }
- }
-
- ///
- /// Represents a filter in an or an .
- ///
- [Obsolete("Use Window.StorageProvider API or TopLevel.StorageProvider API"), EditorBrowsable(EditorBrowsableState.Never)]
- public class FileDialogFilter
- {
- ///
- /// Gets or sets the name of the filter, e.g. ("Text files (.txt)").
- ///
- public string? Name { get; set; }
-
- ///
- /// Gets or sets a list of file extensions matched by the filter (e.g. "txt" or "*" for all
- /// files).
- ///
- public List Extensions { get; set; } = new List();
- }
-}
diff --git a/src/Avalonia.Controls/TabItem.cs b/src/Avalonia.Controls/TabItem.cs
index 78785876ad..0f3c60cbff 100644
--- a/src/Avalonia.Controls/TabItem.cs
+++ b/src/Avalonia.Controls/TabItem.cs
@@ -71,11 +71,6 @@ namespace Avalonia.Controls
protected override AutomationPeer OnCreateAutomationPeer() => new ListItemAutomationPeer(this);
- [Obsolete("Owner manages its children properties by itself")]
- protected void SubscribeToOwnerProperties(AvaloniaObject owner)
- {
- }
-
private static void OnAccessKeyPressed(TabItem tabItem, AccessKeyPressedEventArgs e)
{
if (e.Handled || (e.Target != null && tabItem.IsSelected))
diff --git a/src/Avalonia.Controls/TreeView.cs b/src/Avalonia.Controls/TreeView.cs
index 809e200e8c..068ffbcb66 100644
--- a/src/Avalonia.Controls/TreeView.cs
+++ b/src/Avalonia.Controls/TreeView.cs
@@ -76,12 +76,6 @@ namespace Avalonia.Controls
remove => RemoveHandler(SelectingItemsControl.SelectionChangedEvent, value);
}
- ///
- /// Gets the for the tree view.
- ///
- public new TreeItemContainerGenerator ItemContainerGenerator =>
- (TreeItemContainerGenerator)base.ItemContainerGenerator;
-
///
/// Gets or sets a value indicating whether to automatically scroll to newly selected items.
///
@@ -773,12 +767,6 @@ namespace Avalonia.Controls
}
}
- [Obsolete, EditorBrowsable(EditorBrowsableState.Never)]
- private protected override ItemContainerGenerator CreateItemContainerGenerator()
- {
- return new TreeItemContainerGenerator(this);
- }
-
///
/// Find which node is first in hierarchy.
///
diff --git a/src/Avalonia.Dialogs/ManagedFileDialogExtensions.cs b/src/Avalonia.Dialogs/ManagedFileDialogExtensions.cs
index 1157c5516f..c8f7d388f5 100644
--- a/src/Avalonia.Dialogs/ManagedFileDialogExtensions.cs
+++ b/src/Avalonia.Dialogs/ManagedFileDialogExtensions.cs
@@ -1,11 +1,7 @@
using System;
-using System.ComponentModel;
-using System.Linq;
using System.Runtime.Versioning;
-using System.Threading.Tasks;
using Avalonia.Controls;
using Avalonia.Controls.Platform;
-using Avalonia.Controls.Primitives;
using Avalonia.Platform.Storage;
namespace Avalonia.Dialogs
@@ -41,22 +37,6 @@ namespace Avalonia.Dialogs
return builder.UseManagedSystemDialogs(() => new TWindow());
}
- [Obsolete("Use Window.StorageProvider API or TopLevel.StorageProvider API"), EditorBrowsable(EditorBrowsableState.Never)]
- public static Task ShowManagedAsync(this OpenFileDialog dialog, Window parent,
- ManagedFileDialogOptions? options = null) => ShowManagedAsync(dialog, parent, options);
-
- [Obsolete("Use Window.StorageProvider API or TopLevel.StorageProvider API"), EditorBrowsable(EditorBrowsableState.Never)]
- public static async Task ShowManagedAsync(this OpenFileDialog dialog, Window parent,
- ManagedFileDialogOptions? options = null) where TWindow : Window, new()
- {
- var impl = new ManagedStorageProvider(parent, PrepareOptions(options, () => new TWindow()));
-
- var files = await impl.OpenFilePickerAsync(dialog.ToFilePickerOpenOptions());
- return files
- .Select(file => file.TryGetLocalPath() ?? file.Name)
- .ToArray();
- }
-
private static ManagedFileDialogOptions? PrepareOptions(
ManagedFileDialogOptions? optionsOverride = null,
Func? customRootFactory = null)
diff --git a/src/Avalonia.Native/AvaloniaNativeApplicationPlatform.cs b/src/Avalonia.Native/AvaloniaNativeApplicationPlatform.cs
index 68e0c5dce6..b05aa0576e 100644
--- a/src/Avalonia.Native/AvaloniaNativeApplicationPlatform.cs
+++ b/src/Avalonia.Native/AvaloniaNativeApplicationPlatform.cs
@@ -16,8 +16,6 @@ namespace Avalonia.Native
void IAvnApplicationEvents.FilesOpened(IAvnStringArray urls)
{
- ((IApplicationPlatformEvents?)Application.Current)?.RaiseUrlsOpened(urls.ToStringArray());
-
if (AvaloniaLocator.Current.GetService() is ActivatableLifetimeBase lifetime
&& AvaloniaLocator.Current.GetService() is StorageProviderApi storageApi)
{
@@ -41,9 +39,6 @@ namespace Avalonia.Native
void IAvnApplicationEvents.UrlsOpened(IAvnStringArray urls)
{
- // Raise the urls opened event to be compatible with legacy behavior.
- ((IApplicationPlatformEvents?)Application.Current)?.RaiseUrlsOpened(urls.ToStringArray());
-
if (AvaloniaLocator.Current.GetService() is ActivatableLifetimeBase lifetime
&& AvaloniaLocator.Current.GetService() is StorageProviderApi storageApi)
{
diff --git a/tests/Avalonia.Controls.UnitTests/Primitives/ToggleButtonTests.cs b/tests/Avalonia.Controls.UnitTests/Primitives/ToggleButtonTests.cs
index 9fc14f0b34..ac35c4b33f 100644
--- a/tests/Avalonia.Controls.UnitTests/Primitives/ToggleButtonTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Primitives/ToggleButtonTests.cs
@@ -2,8 +2,6 @@
using Avalonia.UnitTests;
using Xunit;
-#pragma warning disable CS0618 // Type or member is obsolete -- we're testing these members
-
namespace Avalonia.Controls.Primitives.UnitTests
{
public class ToggleButtonTests : ScopedTestBase
@@ -64,51 +62,47 @@ namespace Avalonia.Controls.Primitives.UnitTests
}
[Fact]
- public void ToggleButton_Events_Are_Raised_On_Is_Checked_Changes()
+ public void ToggleButton_IsCheckedChanged_Is_Raised_On_Is_Checked_Changes()
{
var threeStateButton = new ToggleButton();
+ Assert.False(threeStateButton.IsChecked);
- bool checkedRaised = false;
- threeStateButton.Checked += (_, __) => checkedRaised = true;
+ var changeCount = 0;
+ threeStateButton.IsCheckedChanged += (_, _) => ++changeCount;
threeStateButton.IsChecked = true;
- Assert.True(checkedRaised);
-
- bool uncheckedRaised = false;
- threeStateButton.Unchecked += (_, __) => uncheckedRaised = true;
+ Assert.Equal(1, changeCount);
+ Assert.True(threeStateButton.IsChecked);
threeStateButton.IsChecked = false;
- Assert.True(uncheckedRaised);
-
- bool indeterminateRaised = false;
- threeStateButton.Indeterminate += (_, __) => indeterminateRaised = true;
+ Assert.Equal(2, changeCount);
+ Assert.False(threeStateButton.IsChecked);
threeStateButton.IsChecked = null;
- Assert.True(indeterminateRaised);
+ Assert.Equal(3, changeCount);
+ Assert.Null(threeStateButton.IsChecked);
}
[Fact]
- public void ToggleButton_Events_Are_Raised_When_Toggling()
+ public void ToggleButton_IsCheckedChanged_Is_Raised_When_Toggling()
{
var threeStateButton = new TestToggleButton { IsThreeState = true };
+ Assert.False(threeStateButton.IsChecked);
- bool checkedRaised = false;
- threeStateButton.Checked += (_, __) => checkedRaised = true;
+ var changeCount = 0;
+ threeStateButton.IsCheckedChanged += (_, _) => ++changeCount;
threeStateButton.Toggle();
- Assert.True(checkedRaised);
-
- bool indeterminateRaised = false;
- threeStateButton.Indeterminate += (_, __) => indeterminateRaised = true;
+ Assert.Equal(1, changeCount);
+ Assert.True(threeStateButton.IsChecked);
threeStateButton.Toggle();
- Assert.True(indeterminateRaised);
-
- bool uncheckedRaised = false;
- threeStateButton.Unchecked += (_, __) => uncheckedRaised = true;
+ Assert.Equal(2, changeCount);
+ Assert.Null(threeStateButton.IsChecked);
threeStateButton.Toggle();
- Assert.True(uncheckedRaised);
+ Assert.Equal(3, changeCount);
+ Assert.False(threeStateButton.IsChecked);
}
private class Class1 : NotifyingBase