Commit Graph

54 Commits

Author SHA1 Message Date
Julien Lebosquain 2185ce04e7 Use KeySymbol for AccessKey (#20662)
* Change AccessText.AccessKey to a string

* Use KeySymbol for AccessKey

* Update API suppressions

* Fix tests
2026-02-13 09:18:59 +00:00
Steven Kirk d9a6ae517f Hide binding plugins and disable Data Annotations validation by default (#20623)
* Make binding plugin API internal.

Making everything pluggable like has performance implications even if the plugins are never customized (which will be the 99% case).

`IPropertyAccessor` is used in `CompiledBindingPathBuilder` so needs to be kept public for the moment.

* Disable Data Annotations validation by default.

It [conflicts with `CommunityToolkit.Mvvm`](https://github.com/AvaloniaUI/Avalonia/issues/8397) which is now the default MVVM framework, so require it to be enabled in the `AppBuilder`.

* Update API supressions.

* Add back missing using

---------

Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
2026-02-11 17:36:04 +00:00
Julien Lebosquain 816fb91d4e Move GetWindowsZOrder to IWindowingPlatform (#20633)
* Move GetWindowsZOrder to IWindowingPlatform

* Update API suppressions
2026-02-10 11:08:16 +00:00
Julien Lebosquain 7d0c2264f5 Merge multiple interfaces related to rendering (#20557)
* Merge ISkiaGpuWithPlatformGraphicsContext into ISkiaGpu

* Merge ISkiaGpuRenderTarget2 into ISkiaGpuRenderTarget

* Merge IRenderTarget2 into IRenderTarget

* Update API suppressions

* Update API suppressions
2026-02-09 08:20:22 +00:00
Julien Lebosquain 61f8103726 Remove obsolete members from various assemblies (#20628)
* Remove IAndroidView

* Remove XamlLoadException serialization constructor

* Remove RawKeyEventArgs constructor overload

* Remove HeadlessWindowExtensions.KeyPress/KeyRelease overloads

* Update API suppressions
2026-02-06 15:03:50 +00:00
Julien Lebosquain 02c5ff41ff Remove obsolete members from Avalonia.Controls (#20617)
* Remove IActivatableApplicationLifetime

* Remove ItemContainerGenerator.ContainerFromIndex/IndexFromContainer

* Remove TreeItemContainerGenerator

* Remove SystemDialog

* Remove IInsetsManager.DisplayEdgeToEdge

* Remove Screen.PixelDensity/Primary

* Remove Screens.ScreenFromWindow

* Remove Popup/ContextMenu.PlacementMode

* Remove ToggleButton.Checked/Unchecked/Indeterminate

* Remove AppBuilder.LifetimeOverride

* Remove IApplicationPlatformEvents

* Remove TabItem.SubscribeToOwnerProperties

* Update API suppressions
2026-02-06 11:33:18 +00:00
Nikita Tsukanov 697cba7193 Composition system SP1 (#20497)
* baseline benchmark

* Composition system SP1

* Allow reusing the same BitmapCache object for multiple visuals

* Fix warnings

* Address review

* API suppressions

---------

Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
2026-02-06 11:15:47 +00:00
Julien Lebosquain 7b54818918 Remove IDataObject to IDataTransfer wrappers and related methods (#20521)
* Remove IDataObject to IDataTransfer wrappers and related methods

* Remove IDataObject
2026-02-05 12:00:25 +00:00
Julien Lebosquain cac4650c98 Remove obsolete members from Avalonia.Base (#20613)
* Remove CubicBezierEasing

* Remove CustomAnimatorBase

* Remove BindingPriority.TemplatedParent

* Remove CompiledBindingPath.SetRawSource

* Remove StyleDiagnostics

* Remove RadialGradientBrush.Radius

* Remove Color.ToUint32

* Remove DrawingContext.PushPreTransform/PushPostTransform

* Remove ICompositionGpuImporterObject.ImportCompeted

* Remove IStyleable

* Remove AvaloniaResourcesIndex.WriteResources

* Remove AvaloniaObjectExtensions.Bind overload

* Update API suppressions
2026-02-05 07:24:54 +00:00
Julien Lebosquain 656d691940 Move ConstructorArgumentAttribute and remove BindingMode from ReflectionBinding constructor (#20589)
* Move ConstructorArgumentAttribute to Avalonia.Base assembly

* Move IOptionalFeatureProvider to Avalonia namespace

* Remove BindingMode from ReflectionBinding constructor

* Update API suppressions
2026-02-04 03:14:54 +00:00
Julien Lebosquain 313bceea90 Remove AutoCompleteBox.BindingEvaluator (#20596)
* Remove AutoCompleteBox.BindingEvaluator

* Fix AutoCompleteBoxPage sample

* Update API suppressions
2026-02-04 03:08:24 +00:00
Julien Lebosquain d670efd162 Make IPopupHost a private API (#20597)
* Make IPopupHost a private API

* Update API suppressions
2026-02-04 03:07:23 +00:00
Julien Lebosquain 5483217944 Merge IResourceHost2 into IResourceHost (#20576)
* Merge IResourceHost2 into IResourceHost

* Update API suppressions
2026-01-30 15:32:10 +00:00
Julien Lebosquain 806193a43d Remove NativeMenuItemToggleType and NativeMenuBar.EnableMenuItemClickForwarding (#20577)
* Remove NativeMenuItemToggleType

* Remove NativeMenuBar.EnableMenuItemClickForwarding

* Update API suppressions
2026-01-30 09:57:39 +00:00
Julien Lebosquain 4c3c9aa99f Add AlphaFormat to ILockedFramebuffer (#20556)
* Add AlphaFormat to ILockedFramebuffer

* Update API suppressions
2026-01-30 09:55:40 +00:00
Julien Lebosquain 3394815603 Simplify text formatting constructors (#20527)
* Remove the flowDirection parameter from TextCollapsingProperties.CreateCollapsedRuns

* Simplify text formatting constructors

* Update API suppressions
2026-01-30 09:55:24 +00:00
Julien Lebosquain 1ee1509352 Fixes several simple TODO12 (#20544)
* Remove obsolete TextInputMethodClient.ShowInputPanel method

* Merge Move and Move private in KeyboardNavigationHandler

* Change Inline.TextDecorations type to AttachedProperty

* Change TextSearch.GetText/SetText parameter to Interactive

* Remove Design.SetPreviewWith overload

* Replace JSWebWorkerClone with JSWebWorker

* Remove StringTokenizer

* Update API suppressions

* Add reflection comment to RenderWorker
2026-01-27 12:55:05 +00:00
Julien Lebosquain d5d7a7b0e8 Merge IGeometryContext and IGeometryContext2 (#20528)
Co-authored-by: Max Katz <maxkatz6@outlook.com>
2026-01-24 15:53:11 +00:00
Julien Lebosquain 3c88142694 Make Screen abstract (#20529) 2026-01-24 09:41:04 +00:00
Benedikt Stebner 1bce702bd4 Introduce TextOptions (#20107)
* Introduce TextOptions API

* Store BaselinePixelAlignment as byte. Move to a dedicated file.

* Update API suppressions

---------

Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
2026-01-23 11:22:27 +00:00
Julien Lebosquain 8d2f1475ca Remove IInternalScroller and move IScrollable to Avalonia.Base (#20519)
* Remove IInternalScroller and move IScrollable to Avalonia.Base

* Update API suppressions
2026-01-23 07:26:26 +00:00
Steven Kirk 1086d9b5b0 Move compiled bindings to Avalonia.Base. (#20439)
* Reminder for future me.

* Move compiled bindings to Avalonia base.

* Update suppressions.

* Update API suppressions

---------

Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
2026-01-16 11:52:50 +00:00
Benedikt Stebner e8424283fe Universal GlyphTypeface implementation (#19852)
* Introduce a universal IGlyphTypeface implementation that does not rely on any platform implementation

* Revert changes

* Fix Android

* Make the test happy

* Fix build

* Update baseline

* Fix naming

* Fix headless

* Move interfaces to dedicated files
Make GlyphTypeface.GlyphCount an integer

* Fix GlyphCount

* Make IGlyphTypeface NotClientImplementable

* Make sure we cache platform typefaces by their desired name, style, weight and stretch

* Update baseline

* Only use IGlyphTypeface

* Fix Android

* Try to clear the buffer before we encode somethimg

* Add needed test font

* Add more unit tests

* Reduce allocations

* Remove Direct2D1 test files

* More tests

* More complete table implementations

* More adjustments

* Use batch APIs

* Handle invalid timestamps

* Update baseline

* Introduce a CharacterToGlyphMap struct for faster access

* Remove AggressiveInlining

* Remove AggressiveInlining

* Make the head table optional for legacy fonts

* Remove Load method. Fix TextBlockTests

* Fix nullables

* Remove redundant folder

* Update Api baseline

* revert diff helper changes

* revert changes

* Use bare minimum font for Headless platform and introduce a test font manager that uses the Inter font for testing.

* Add missing font file for Headless platform

---------

Co-authored-by: Gillibald <stebner@avaloniaui.net>
Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
2026-01-09 15:07:28 +00:00
Steven Kirk f2fc8d02f4 Move IBinding to BindingBase and tidy up some binding APIs (#19589)
* Update ncrunch config.

* Tidy up reflection and multi-binding APIs:

- Move `BindingBase` and `MultiBinding` into Avalonia.Base
- `BindingBase` becomes a true base class for all bindings, and contains only the `Instance` method
- Properties common between reflection and compiled bindings are moved into `StandardBindingBase`
- `Binding` is moved to Avalonia.Base and renamed to `ReflectionBinding`
- A compatibility shim for `Binding` remains in Avalonia.Markup
- Remove `IBinding` and `IBinding2`
- Remove `ITreeDataTemplate's usage of `InstancedBinding`
- Remove `NativeMenuBarPresenter`s usage of `InstancedBinding`
- Remove `InstancedBinding` as it is now unused

This required an update to the DataGrid submodule: cell data validation has been temporarily removed as this used `InstancedBinding`.

* `Instance()` => `CreateInstance()`.

The use of "Instance" as a verb is quite unusual apparently ;)

* Seal classes where appropriate.

* Seal classes where appropriate.

* Remove `StandardBindingBase`.

Simply duplicate the members in reflection and compiled binding classes.

* Delete deleted submodule directory.

* Add missing attribute.

Fixes compile error.

* Fix reference to removed class.

* Update suppressions.
2026-01-08 17:33:14 +00:00
Nikita Tsukanov 4e530e4340 Improve effect render performance by providing Skia with information about subscene bounds (#20191)
* Improve effect render performance by providing Skia with information about subscene bounds

* Fixed test

* apidiff

* Update API diff

---------

Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
2025-12-05 14:25:03 +00:00
Javier Suárez 7efc6d9bb0 [Feature] Move LetterSpacing to TextElement as inherited attached property (#20141)
* Add LetterSpacing property to the Button

* Created attached property

* Added samples

* Updated implementation

* Updated Themes

* Updated ButtonPage LetterSpacing sample

* Updated templates

* Updated API
2025-12-01 08:50:28 +00:00
Benedikt Stebner 3e62621aaf Improve FontCollection customization (#19756)
* Improve FontCollection user story

* Make adjustments after review

* Refactor IsFontFile

* Make FontFamilyLoader internal
Make tests happy again

* Update baseline

* Adjust modifier

---------

Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
2025-11-24 16:23:32 +00:00
Julien Lebosquain fb0f3848f9 Update to .NET 10 (#19869)
* Update to .NET 10 and C# 14

* Remove reflection usage in AvaloniaAccessHelper

* Fix Android nullability errors

* Fix WindowMetrics.WindowInsets removed from AndroidX

* Update pipelines

* Fix ValidateApiDiff for missing frameworks

* Fix Windows integration tests

* Update Xamarin.AndroidX.Window to 1.5.0

* Fix MacCatalyst supported version

* Remove unused Xunit.Extensions.Ordering

* Try to fix macOS integration tests

* Update pipeline runner to macOS 15

* Disable LeakTests

* Fix .NET Framework unit tests

* Fix BuildTests

* Bump minimum Android API level to 24

* Update to .NET 10 RTM

* Update XamlX

* update android insets and activity code to handle deprecated behaviors in api 36

---------

Co-authored-by: Emmanuel Hansen <emmausssss@gmail.com>
2025-11-19 15:22:43 +01:00
Jumar Macato 2c540873ec Add Impl for SaveFilePickerWithResultAsync API (#19783)
* Add new SaveFilePickerWithResultAsync API to the base

* Add SaveFilePickerWithResultAsync stub impl

* Control Catalog SaveFilePickerWithResultAsync sample with XML and JSON types

* Make SaveFilePickerResult a struct

* Add managed picker implementation

* Make SaveFilePickerResult a readonly struct

* Windows implementation of SaveFilePickerWithResultAsync

* Test impl for dbus

* Reuse the file type object (FTO) so StorageFile consumer can match exactly the right FTO when receiving the SaveFilePicker's result.

* Add Gtk impl

* Avalonia.Native: surface selected save dialog filters

* macOS: report selected NSSavePanel filter

* Modify the conditional in case there's duplicate descriptions of FTO's in DBusSystemDialog.cs

* Instantiate FPFT as fallback

* Pass the mime/pattern to instantiated FPFT

* Update API diff

* Fix review comments

---------

Co-authored-by: Max Katz <maxkatz6@outlook.com>
2025-10-27 03:43:09 +00:00
Nikita Tsukanov 22c4c630ce [OSX] Implemented IOSurface/MTLSharedEvent interop APIs (#18791)
* [OSX] Implemented IOSurface/MTLSharedEvent interop APIs

* Bump Xcode?

* Xcode?

* APIDiff

* Use different XCode versions because of how awesome appium is

* A hack for crapium

* Replace SkiaMetalApi usages

* Update API suppressions

---------

Co-authored-by: Timothy Miller <innerlogic4321@gmail.com>
Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
2025-10-03 18:46:48 +02:00
Julien Lebosquain 1f404646fa Clipboard rework (#19347)
* New clipboard with IDataTransfer

* Move legacy format handling to DataObject wrappers

* macOS clipboard rework

* Browser clipboard rework

* Android clipboard rework

* iOS new clipboard

* X11 clipboard rework

* Simplify IDataTransfer API

* Simplify IClipboardImpl API

* Add DataFormat documentation

* Make DataFormat.SystemName platform specific

* Fix clipboard/DnD samples

* Fix native clipboard UTI conversion

* Adjust IDataTransfer namespaces

* Add Obsolete attributes to IDataObject related methods

* Better API for DataTransferItem

* Tizen clipboard rework

* Add missing clipboard extension methods

* Split IDataTransferItem into IAsyncDataTransferItem and ISyncDataTransferItem

* Rename back ISyncDataTransfer to IDataTransfer

* Added IClipboard API suppressions

* Make IPlatformDragSource NotClientImplementable

* Rename DataFormatKinds

* Added DataTransferItem.CreateText/File

* Implemented typed DataFormat<T>

* Fix X11 text/uri-list encoding

* Add API suppressions

* Adjust ClipboardUriListHelper stream ownership

* Fix legacy clipboard BinaryFormatter deserialization

* Fix macOS build
2025-10-01 11:47:09 +00:00
Julien Lebosquain 66724d4785 Improved API diff (#19490)
* Improved API diff

* Merge API diff files

* Ignore platform version for API diff

* Start with fresh suppression files
2025-08-20 02:40:50 +00:00
Nikita Tsukanov f3b418d435 Implemented Dispatcher.Yield / Dispatcher.Resume (#19370)
* Refactored DispatcherPriorityAwaitable, implemented Dispatcher.Yield

* Picked changes from https://github.com/AvaloniaUI/Avalonia/pull/14212

* Format/compile

* Update API suppressions

---------

Co-authored-by: Yoh Deadfall <yoh.deadfall@hotmail.com>
Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
2025-08-04 09:30:10 +00:00
Steven Kirk fdf939a27f Remove PropertyPath. (#19133)
* Remove PropertyPath.

It was added as part of #2734 with the intention of it being used for animation setters, but this was never implemented. There's no point carrying this old unused code around - if we want to implement this feature we can add it back in.

* Update API suppressions.
2025-06-27 14:58:44 +00:00
Steven Kirk 3cc0275506 Make CharacterReader internal. (#19123)
* Make `CharacterReader` internal.

And by extension, make the static classes which define extension methods on it internal.

To do this, I had to make Avalonia.Base's internals visible to Avalonia.Designer.HostApp, as that has a dependency on it, and exclude `StringCompatibilityExtensions` from there as the one from Avalonia.Base is now visible.

* Don't expose internals to HostApp.

Exposing Avalonia.Base's internals to Avalonia.Designer.HostApp caused an issue with the dependency on `StringCompatibilityExtensions` - because the hostapp is loaded into the target app and `StringCompatibilityExtensions` is conditionally compiled, you ended up with it being loaded into an app which does not have `StringCompatibilityExtensions`.

Instead, add `string` overloads of the internal APIs which take a `CharacterReader` so that they can be called even when `CharacterReader` isn't available.

* Update API diff.
2025-06-26 12:06:24 +00:00
Emmanuel Hansen 2dc808f3e8 Fix insets on android 15 (#18844)
* fix insets on android 15

* add api diff

* fix nit
2025-06-05 17:26:33 +02:00
Zhang Dian 73d7579043 Fix typo in PseudoClassesExtensions class name (#18717)
* fix: fix typo in PseudoClassesExtensions class name.

* fix: add suppression for PseudolassesExtensions diagnostic.
2025-04-25 11:02:07 +00:00
Nikita Tsukanov c3b4d61b8a Added IClipboard:TryGetInProcessDataObjectAsyns (#18340)
* Implemented IClipboard.TryGetInProcessDataObjectAsync for X11

* [Win32] Implemented TryGetInProcessDataObjectAsync

* Rest of the platforms

* Run `nuke ValidateApiDiff`

---------

Co-authored-by: Max Katz <maxkatz6@outlook.com>
2025-03-12 16:22:49 +00:00
workgroupengineering 61de7e36b1 feat(Window): Allow to persist content of Clipboard after App close (#16778)
* feat(Window): Allow to persist content of Clipboard after App close

* fix: missing iOS Platform

* fix(Api Validation): Missing suppression

* Revert "fix(Api Validation): Missing suppression"

This reverts commit 04b4e0c634ca70759969e098b581d7e1bbae802a.

* fix: Address review

* fix: ValidateApiDiff

* test: Fix build issue

---------

Co-authored-by: Julien Lebosquain <julien@lebosquain.net>
2025-03-03 02:10:32 +00:00
nickodei fce56827e2 Access single file or folder from IStorageFolder by name (#17771)
* added methods to IStorageFolder to access a single file or folder by name

* relaxed file/folder by name browser acces to throw less errors
2025-01-23 15:07:12 +00:00
StefanKoell b46126714b Fixes and improves several access key (accelerator) related issues (#17292)
* fix accelerator behavior for menu items and labels

* add elements with matching accelerator to test cycling in sub menus

* Add AccessKeyHandler tests for accelerators with more than one match

* Implement accelerator behavior based on WPF handling

* Remove commented code

* Remove OnAccessKey override => handled by DefaultMenuInteractionHandler

* remove obsolete test

* handle OnAccessKeyPressed for selected tab item

* fix unit tests

* use AccessKeyEvent instead of AccessKeyPressedEvent in unit tests

* navigate menu with and without ALT key

* Revert formatting changes in Tests

* Fix AccessKeyHandler comments

* move private types to bottom

* Remove lock statements, optimize removal of AccessKeyRegistrations

* remove call to Dispatcher.UIThread.Post

* simplifiy AccessKeyHandler.SortByHierarchy

* remove unnecessary method AccessKeyHandler.GetTargetsForSender

* regenerate API suppression file

* revert unneeded changes in MenuPage.axaml

* correct formatting changes

* do not sort by hierarchy if too few targets

* make AccessKeyEventArgs internal

* make AccessKeyPressedEventArgs internal

---------

Co-authored-by: Hans Docsek <hans.docsek@gmail.com>
2024-11-10 10:27:07 +00:00
Steven Kirk b272283e50 Make popup focus stealing configurable. (#16642)
* Show Avalonia context menu and toolip...

In native text box in integration test app. Only implemented for win32 right now.

This is to test the two popup behaviors required for native controls:

- The context menu needs focus to be transferred to Avalonia
- The ToolTip must not transfer focus to Avalonia

* Added Popup.TakesFocusFromNativeControl.

By default, if a popup is shown when a native control is focused, focus is transferred back to Avalonia in order for the popup to receive input. If this property is set to false, then the shown popup will not receive input until it receives an interaction which explicitly focuses the popup, such as a mouse click.

The effect of this property can be seen in the Embedding tag of the IntegrationTestApp: hovering over the native text box shows an Avalonia `ToolTip` which does not steal focus from the native text box. Right-clicking to open an Avalonia `ContextMenu` does steal focus so the menu items can be selected using the arrow keys.

Currently only implemented on a win32.

* Show tooltip and context menu on macOS.

* Implement TakeFocus on macOS.

* Add integration tests.

Only tested on win32 so far.

* Integration tests won't work on macOS.

As can be expected at this point, really.

* Update API diff.
2024-09-30 14:49:19 +00:00
Max Katz 6ca040b3b3 11.2.x Private/PublicAPI adjustments (#16733)
* Mark RenderWorker as internal

* Add remaining Fonts.Tables types as internal

* Mark new diagnostic APIs as a PrivateAPI

* Restore old GetStyleDiagnostics APIs, but mark them with [PrivateApi], avoiding breaking changes
2024-08-19 16:17:25 -07:00
Max Katz 1cfa82ca57 Custom popup placement callback (#15667)
* Add CustomPopupPlacement API

* Add Placement="Custom" support for Flyout, ToolTip and ContextMenu controls as well

* Adjust some API changes

* Add Avalonia.Controls.Primitives.IPopupHost.ConfigurePosition breaking change

* Extract new types into separated files

* Fix build after merge conflict

* Adjust nupkg.xml

* Dispose property subscriptions after popup is closed, avoiding flickering

* Adjust API to be more future proof and add new parameters.

* Add new ContextRequestedEventArgs overload while I am on it
2024-08-19 14:54:44 -07:00
Max Katz d3f234bad5 Reset API validation baseline (#16470) 2024-07-25 18:16:14 -07:00
Max Katz 05ac6d2f1d Screens API refactor (#16295)
* Draft new API

* Push reusable ScreensBaseImpl implementation

* Fix tests and stubs

* Update ScreensPage sample to work on mobile + show new APIs

* Reimplement Windows ScreensImpl, reuse existing screens in other places of backend, use Microsoft.Windows.CsWin32 for interop

* Make X11 project buildable, don't utilize new APIs yet

* Reimplement macOS Screens API, differenciate screens by CGDirectDisplayID

* Fix build

* Adjust breaking changes file (none affect users)

* Fix missing macOS Screen.DisplayName

* Add more tests + fix screen removal

* Add screens integration tests

* Use hash set with comparer when removing screens

* Make screenimpl safer on macOS as per review

* Replace UnmanagedCallersOnly usage with source generated EnumDisplayMonitors

* Remove unused dllimport

* Only implement GetHashCode and Equals on PlatformScreen subclass, without changing base Screen
2024-07-16 15:48:18 -07:00
Max Katz 6938183319 Improve DevTools previewer of setter values by including all value priorities (#13802)
* Replace "Active Styles" dev tools analysis with "Active Value Frames"

* Remove old diagnostic methods from public API (breaking change)

* Show full style selectors

* Avoid unnecessary value setters by checking if color was actually changed

* Run UpdateStyles from the dispatcher to fix flickering issue

* Fix build
2024-05-09 22:32:38 +00:00
Wiesław Šoltés f7feaba5a0 Add Close and ClearAll api for INotificationManager and IManagedNotificationManager (#15628)
* Add Close and ClearAll api for INotificationManager

* Remove notification card item on close

* Make _notificationCards readonly

* Clear _notificationCards when detached from visual tree

* Update Avalonia.nupkg.xml

* Use cancellationToken = default instead of null

* Rename ClearAll to CloseAll for consistency with Close method naming

* Remove cancellationToken param from Show method for better compatibility

* Update Avalonia.nupkg.xml

---------

Co-authored-by: Jumar Macato <16554748+jmacato@users.noreply.github.com>
2024-05-07 08:43:34 +00:00
MakesYT 299c16da55 Enhancement Allow unload AssemblyLoadContext which contains Avalonia content #13935 (#13974)
* Try fix #13935

* Fix

* Fix

* add sample

* Fix

* try load Style by reflection

* try

* Fixed an error when registering properties when uninstalling assemblies

* Allowed to delete the IAssemblyDescriptorResolver StandardAssetLoader _assemblyNameCache

* Resolving merge conflicts

* Fix

* Add exegesis

* optimize

* fix

* Resolving merge conflicts

* nuke
2024-04-05 16:28:28 -07:00
Julien Lebosquain 0399137b2d Made NamespaceInfo internal (#14793) 2024-03-02 23:13:09 +00:00