* Add .NET 8 target to packable projects
* Update test projects
* Update sample projects to target .NET 8
* Update main Avalonia package to target .NET 8 as well
* Remove MSBuildEnableWorkloadResolver hack and some minor change
* Use net8.0 in nuke build as well
* Pin 8.0.0 SDK
* Adjust API validation
* Pin a valid version
* Remove net461 target from Avalonia package
* Remove unused net6.0 target from Avalonia.Designer.HostApp
* Adjust API diff
* Update ControlCatalog.Android.csproj
* Remove MSBuildEnableWorkloadResolver
* Fix Browser issues on .NET 8
* Fix .NET 8 error
* Fix merge conflicts
* Replace explicit TFMs in .csproj files with a centralized registry
* Fix merge conflict
* Fix AvsLegacyWindowsTargetFrameworks and add hacks for the tests
* Update XCode project CommandLineArgument
---------
Co-authored-by: Nikita Tsukanov <keks9n@gmail.com>
* Minimize private API usages
- AvaloniaLocator.Current shouldn't be used unless really needed.
- Add comments where not possible otherwise
* fix wrong if statements
* Do not defer resources with name registration on them
* Fix transformers order
* Make NameScopeRegistrationVisitor usage more clear
* Reuse NameScopeRegistrationVisitor
* Make NameScopeRegistrationVisitor usage more intuitive
* BuildToNuGetCache target
* Skip more stuff that's not required for quick local testing of apps
---------
Co-authored-by: Max Katz <maxkatz6@outlook.com>
* Update ncrunch config.
* Add tests for converting strings to brushes.
* Make complied bindings use TypeConverters.
Certain conversions rely on type converters, which were disabled in compiled bindings since #13970 due to warnings that type converters are not trimming friendly.
Ideally we'd be generating the type conversion logic in the XAML compiler, but in reality the problem with type converters and trimming is limited to type converters with generics, which is an edge case.
For the moment re-enable the usage of type converters in compiled bindings until we implement generating the conversion code in the XAML compiler.
* [X11] Allow setting WM_CLASS and _NET_WM_WINDOW_TYPE
* Renamed to X11Properties and moved to Avalonia.Controls
* [PrivateApi]
* Rename
* Suggested doc
Co-authored-by: Max Katz <maxkatz6@outlook.com>
---------
Co-authored-by: Max Katz <maxkatz6@outlook.com>
* Avoid hardcoding strings in DateTimePicker cs files
* Add invariant resources
* Implement ResourceProvider for flexibility of localization with custom resource provider
* Fix these weird tests
* Seal some ResourceDictionary extension points
* Replace "Locale" with "String"
* Use NSSearchPathDomain.User when opening a known folder on iOS
* Use UIImagePickerController for WellKnownFolder.Pictures
* Improve how Android handles read permissions
* Raise BackRequested with Send priority
* Raise InsestsManager events with Send priority
* Raise InputPane events with Send priority
* Raise PlatformSettings events with Send priority
* Redirect some more events to the Dispatcher from TopLevel
* Fix AvaloniaSynchronizationContext always using UIThread
* Fix DispatcherOperation TaskSource initialization which caused some exception to be swallowed
* Implement Dispatcher.UnhandledException and Dispatcher.UnhandledExceptionFilter
* Add new internal Dispatcher.Send method without async semantics, use it in SyncContext
* Add tests, partially ported from WPF
* Make Input events go through Dispatcher.UIThread.Send
* Make Dispatcher.ExceptionDataKey internal, so it can be used in XPF
* Some Dispatcher.Send fixes
* Fix Headless tests after SynchronizationContext changes (it relied on global UIThread)
* Fix Send InvokeImpl usage
* Do not wrap AvaloniaSynchronizationContext.Ensure in the Send
---------
Co-authored-by: Nikita Tsukanov <keks9n@gmail.com>
* Avoid constantly recompiling Avalonia Xaml files by implementing incremental build checks
- Should be a (or even the) fix for file permission errors during builds
CompileAvaloniaXaml no longer overwrites the Compile output, but creates its own output files
- This supports incremental build checks and is safer in general
Removed unused executable features from Avalonia.Build.Tasks
- This is instead of refactoring for the new ITaskItem properties
Updated Desktop SLNF
* Fixed tests
* Touch each copied output file
I'm not sure why, but the fluent `Expander` theme uses a mix of static and dynamic resources with seemingly no reason to differentiate them? It's not so much a problem for the resources in the default values for `Expander` as these can be overridden with local values, but for the toggle button and trigger styles, it means there's no way to customize these values.
Converted all of the `StaticResource`s to `DynamicResource`s.
* Implement MacOS.IsTemplateIcon attached property on TrayIcon
* Use MacOS.IsTemplateIcon in the ControlCatalog
* Rename MacOS to MacOSProperties
* Extract IsTemplateIcon to ITrayIconWithIsTemplateImpl