Overview
This guide covers migration paths for:- Flowery.NET (Avalonia) → Flowery.Uno (Uno Platform / WinUI)
- Earlier Flowery.Uno versions → Latest version
Migrating from Flowery.NET
Platform Differences
Flowery.NET targets Avalonia UI, while Flowery.Uno targets Uno Platform (WinUI). Key differences:| Aspect | Flowery.NET (Avalonia) | Flowery.Uno (Uno/WinUI) |
|---|---|---|
| Base Framework | Avalonia UI | Uno Platform / WinUI |
| XAML Namespace | xmlns:daisy="using:Flowery.Controls" | xmlns:daisy="using:Flowery.Controls" (same) |
| Control Base Classes | Avalonia controls | WinUI controls |
| Styling System | Avalonia styles | WinUI lightweight styling |
| Threading Model | Avalonia Dispatcher | WinUI DispatcherQueue |
| Target Platforms | Windows, macOS, Linux | Windows, iOS, Android, WASM, macOS, Linux |
Control Name Mapping
Most control names are identical between Flowery.NET and Flowery.Uno:Key Differences
- Base Control Properties: Some WinUI-specific properties may differ from Avalonia equivalents
- Event Names: WinUI uses
Clickinstead of Avalonia’sClick(usually the same, but verify) - Resource System: Avalonia uses
DynamicResource, WinUI usesThemeResource
XAML Syntax Changes
Resource References
Avalonia (Flowery.NET):Data Binding
Avalonia:WinUI/Uno supports both
{Binding} (runtime) and {x:Bind} (compile-time). Prefer x:Bind for better performance.Theming System Changes
Theme Application
Avalonia (Flowery.NET):Theme Persistence
Avalonia:Styling Approach Changes
Lightweight Styling
Avalonia (Flowery.NET):Application-Wide Styling
Avalonia:Code-Behind Changes
Dispatcher Access
Avalonia:Observable Collections
Avalonia:Version Updates (Flowery.Uno)
0.1.1 → 0.1.2 (February 2026)
Breaking Changes
-
Android Target Update:
- Changed from
net9.0-androidtonet10.0-android36.0 - Action Required: Update your
.csprojfiles:
- Changed from
-
Mobile Touch Target Changes:
- Mobile platforms now enforce minimum 44px touch targets automatically
- Action Required: Review custom sizing logic for mobile controls
-
Global Default Size:
- Changed from
DaisySize.SmalltoDaisySize.Medium - Action Required: If you rely on
Smallas default, set explicitly:
- Changed from
New Features
- Mobile-Specific Sizing: Automatic touch-target optimization on iOS/Android
- Line-Height Tokens: Improved vertical alignment in buttons and inputs
- PlatformCompatibility.IsMobile: Use this to detect mobile platforms
Migration Steps
0.1.0 → 0.1.1 (February 2026)
Changes
-
Centralized Versioning:
- Version now managed in
Directory.Build.props - Action Required: Remove explicit
<Version>from individual.csprojfiles
- Version now managed in
-
Gallery Startup Optimization:
- Improved initial rendering performance
- Deferred heavy page loading
- No action required (internal optimization)
-
Dependency Updates:
- Updated common package versions
- Action Required: Run
dotnet restoreto update packages
Common Migration Issues
Issue: Controls Not Rendering
Cause: MissingThemes/Generic.xaml reference in WinUI projects.
Solution: Ensure library uses GenerateLibraryLayout=true in .csproj:
Issue: Theme Not Applied
Cause: Theme applied after window creation. Solution: Apply theme before creating main window:Issue: Resource Keys Not Found
Cause: Using Avalonia resource syntax in WinUI project. Solution: ReplaceDynamicResource with ThemeResource:
Issue: Binding Errors
Cause: MissingMode in WinUI bindings.
Solution: Specify binding mode explicitly:
Platform-Specific Considerations
Android
iOS
WebAssembly (WASM)
Desktop (Skia)
Testing Migration
Replace XAML syntax
Replace Avalonia-specific syntax with WinUI equivalents (
DynamicResource → ThemeResource).Test on each platform
Build and run on Windows, Android, iOS, and WASM to verify platform-specific behavior.
Migration Checklist
Flowery.NET → Flowery.Uno
- Update project to Uno Platform
- Replace
DynamicResourcewithThemeResource - Replace Avalonia dispatcher with WinUI
DispatcherQueue - Update theme application to use
DaisyThemeManager - Replace Avalonia collections with WinUI collections
- Update styling approach to WinUI lightweight styling
- Test on target platforms (Windows, Android, iOS, WASM)
Flowery.Uno 0.1.1 → 0.1.2
- Update Android target to
net10.0-android36.0 - Remove explicit
Size="Small"if using default size - Test controls on mobile devices for touch target sizing
- Update build scripts for Android 36 SDK
- Review custom sizing logic for mobile compatibility
Getting Help
GitHub Issues
Report bugs or request features
Discussions
Ask questions and share tips
Uno Platform Docs
Official Uno Platform documentation
WinUI Docs
Microsoft WinUI documentation
Next Steps
Quick Start
Get started with Flowery.Uno
Theming Guide
Master theme switching and customization
Component Reference
Explore all available controls
Styling Guide
Learn about control customization

