diff --git a/samples/MauiEmbedding/Directory.Packages.props b/samples/MauiEmbedding/Directory.Packages.props
index 3fdfab74bc..331802bdb2 100644
--- a/samples/MauiEmbedding/Directory.Packages.props
+++ b/samples/MauiEmbedding/Directory.Packages.props
@@ -10,7 +10,7 @@
-
+
diff --git a/samples/MauiEmbedding/MauiEmbedding.sln b/samples/MauiEmbedding/MauiEmbedding.sln
index 4f99c19724..d991f9c5bb 100644
--- a/samples/MauiEmbedding/MauiEmbedding.sln
+++ b/samples/MauiEmbedding/MauiEmbedding.sln
@@ -60,6 +60,20 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Localization
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Navigation.Generators", "..\..\src\Uno.Extensions.Navigation.Generators\Uno.Extensions.Navigation.Generators.csproj", "{9585696E-CAEF-4DC2-B612-7681C9B0FDDF}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Core.Generators", "..\..\src\Uno.Extensions.Core.Generators\Uno.Extensions.Core.Generators.csproj", "{3E84B7A1-D829-46AE-9E95-55E691FA7328}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Storage", "..\..\src\Uno.Extensions.Storage\Uno.Extensions.Storage.csproj", "{84B26485-ACDE-46A4-BA02-D50C51FA1C71}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Serialization", "..\..\src\Uno.Extensions.Serialization\Uno.Extensions.Serialization.csproj", "{55DB6D52-3E70-465E-86C4-EDD45E84149D}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Logging.WinUI.Skia", "..\..\src\Uno.Extensions.Logging\Uno.Extensions.Logging.WinUI.Skia.csproj", "{521D1D95-8E04-4CE1-9941-31B8247CDFEF}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Logging.WinUI.Wasm", "..\..\src\Uno.Extensions.Logging\Uno.Extensions.Logging.WinUI.Wasm.csproj", "{353174B7-F26F-455B-9B42-DC750037315D}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Hosting.WinUI.Skia", "..\..\src\Uno.Extensions.Hosting.UI\Uno.Extensions.Hosting.WinUI.Skia.csproj", "{32BD5829-65A9-406E-97D8-752556E23B2B}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Hosting.WinUI.Wasm", "..\..\src\Uno.Extensions.Hosting.UI\Uno.Extensions.Hosting.WinUI.Wasm.csproj", "{8493BB1F-62E7-4E18-92A6-4DD5635DCA32}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -686,6 +700,202 @@ Global
{9585696E-CAEF-4DC2-B612-7681C9B0FDDF}.Release|x64.Build.0 = Release|Any CPU
{9585696E-CAEF-4DC2-B612-7681C9B0FDDF}.Release|x86.ActiveCfg = Release|Any CPU
{9585696E-CAEF-4DC2-B612-7681C9B0FDDF}.Release|x86.Build.0 = Release|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Debug|ARM.Build.0 = Debug|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Debug|x64.Build.0 = Debug|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Debug|x86.Build.0 = Debug|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Release|ARM.ActiveCfg = Release|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Release|ARM.Build.0 = Release|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Release|ARM64.Build.0 = Release|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Release|iPhone.Build.0 = Release|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Release|x64.ActiveCfg = Release|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Release|x64.Build.0 = Release|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Release|x86.ActiveCfg = Release|Any CPU
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328}.Release|x86.Build.0 = Release|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Debug|ARM.Build.0 = Debug|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Debug|x64.Build.0 = Debug|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Debug|x86.Build.0 = Debug|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Release|Any CPU.Build.0 = Release|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Release|ARM.ActiveCfg = Release|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Release|ARM.Build.0 = Release|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Release|ARM64.Build.0 = Release|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Release|iPhone.Build.0 = Release|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Release|x64.ActiveCfg = Release|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Release|x64.Build.0 = Release|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Release|x86.ActiveCfg = Release|Any CPU
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71}.Release|x86.Build.0 = Release|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Debug|ARM.Build.0 = Debug|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Debug|x64.Build.0 = Debug|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Debug|x86.Build.0 = Debug|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Release|ARM.ActiveCfg = Release|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Release|ARM.Build.0 = Release|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Release|ARM64.Build.0 = Release|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Release|iPhone.Build.0 = Release|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Release|x64.ActiveCfg = Release|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Release|x64.Build.0 = Release|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Release|x86.ActiveCfg = Release|Any CPU
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D}.Release|x86.Build.0 = Release|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Debug|ARM.Build.0 = Debug|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Debug|x64.Build.0 = Debug|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Debug|x86.Build.0 = Debug|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Release|Any CPU.Build.0 = Release|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Release|ARM.ActiveCfg = Release|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Release|ARM.Build.0 = Release|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Release|ARM64.Build.0 = Release|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Release|iPhone.Build.0 = Release|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Release|x64.ActiveCfg = Release|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Release|x64.Build.0 = Release|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Release|x86.ActiveCfg = Release|Any CPU
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF}.Release|x86.Build.0 = Release|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Debug|ARM.Build.0 = Debug|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Debug|x64.Build.0 = Debug|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Debug|x86.Build.0 = Debug|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Release|ARM.ActiveCfg = Release|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Release|ARM.Build.0 = Release|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Release|ARM64.Build.0 = Release|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Release|iPhone.Build.0 = Release|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Release|x64.ActiveCfg = Release|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Release|x64.Build.0 = Release|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Release|x86.ActiveCfg = Release|Any CPU
+ {353174B7-F26F-455B-9B42-DC750037315D}.Release|x86.Build.0 = Release|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Debug|ARM.Build.0 = Debug|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Debug|x64.Build.0 = Debug|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Debug|x86.Build.0 = Debug|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Release|ARM.ActiveCfg = Release|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Release|ARM.Build.0 = Release|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Release|ARM64.Build.0 = Release|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Release|iPhone.Build.0 = Release|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Release|x64.ActiveCfg = Release|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Release|x64.Build.0 = Release|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Release|x86.ActiveCfg = Release|Any CPU
+ {32BD5829-65A9-406E-97D8-752556E23B2B}.Release|x86.Build.0 = Release|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Debug|ARM.Build.0 = Debug|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Debug|ARM64.ActiveCfg = Debug|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Debug|ARM64.Build.0 = Debug|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Debug|x64.Build.0 = Debug|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Debug|x86.Build.0 = Debug|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Release|ARM.ActiveCfg = Release|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Release|ARM.Build.0 = Release|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Release|ARM64.ActiveCfg = Release|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Release|ARM64.Build.0 = Release|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Release|iPhone.Build.0 = Release|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Release|x64.ActiveCfg = Release|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Release|x64.Build.0 = Release|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Release|x86.ActiveCfg = Release|Any CPU
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -713,6 +923,13 @@ Global
{87FD59DC-30CC-4E9D-AF91-6420BF3E8E8D} = {9B9F35D5-E6DD-4FC7-9198-F8246D3CE366}
{4054EC53-5C82-4D2A-8FE8-A8BBFA9AA4AD} = {9B9F35D5-E6DD-4FC7-9198-F8246D3CE366}
{9585696E-CAEF-4DC2-B612-7681C9B0FDDF} = {9B9F35D5-E6DD-4FC7-9198-F8246D3CE366}
+ {3E84B7A1-D829-46AE-9E95-55E691FA7328} = {9B9F35D5-E6DD-4FC7-9198-F8246D3CE366}
+ {84B26485-ACDE-46A4-BA02-D50C51FA1C71} = {9B9F35D5-E6DD-4FC7-9198-F8246D3CE366}
+ {55DB6D52-3E70-465E-86C4-EDD45E84149D} = {9B9F35D5-E6DD-4FC7-9198-F8246D3CE366}
+ {521D1D95-8E04-4CE1-9941-31B8247CDFEF} = {9B9F35D5-E6DD-4FC7-9198-F8246D3CE366}
+ {353174B7-F26F-455B-9B42-DC750037315D} = {9B9F35D5-E6DD-4FC7-9198-F8246D3CE366}
+ {32BD5829-65A9-406E-97D8-752556E23B2B} = {9B9F35D5-E6DD-4FC7-9198-F8246D3CE366}
+ {8493BB1F-62E7-4E18-92A6-4DD5635DCA32} = {9B9F35D5-E6DD-4FC7-9198-F8246D3CE366}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {584E156C-C094-4968-8A1F-3FB06081E34D}
diff --git a/samples/MauiEmbedding/MauiEmbedding/Presentation/MauiEssentialsViewModel.cs b/samples/MauiEmbedding/MauiEmbedding/Presentation/MauiEssentialsViewModel.cs
index 0bcf272024..86f58c3688 100644
--- a/samples/MauiEmbedding/MauiEmbedding/Presentation/MauiEssentialsViewModel.cs
+++ b/samples/MauiEmbedding/MauiEmbedding/Presentation/MauiEssentialsViewModel.cs
@@ -1,4 +1,5 @@
using Microsoft.Maui.Devices;
+using Uno.Extensions;
namespace MauiEmbedding.Presentation;
partial class MauiEssentialsViewModel : ObservableObject
@@ -15,13 +16,16 @@ partial class MauiEssentialsViewModel : ObservableObject
public string DisplayInfo => $"Display info: {DisplaySize.width}x{DisplaySize.height}";
- public MauiEssentialsViewModel()
+ public MauiEssentialsViewModel(IDispatcher dispatcher)
{
BatteryLevel = Battery.ChargeLevel;
DisplaySize = (DeviceDisplay.MainDisplayInfo.Width, DeviceDisplay.MainDisplayInfo.Height);
- Battery.BatteryInfoChanged += OnBatteryBatteryInfoChanged;
- DeviceDisplay.MainDisplayInfoChanged += OnDeviceDisplayChanged;
+ _ = dispatcher.ExecuteAsync(() =>
+ {
+ Battery.BatteryInfoChanged += OnBatteryBatteryInfoChanged;
+ DeviceDisplay.MainDisplayInfoChanged += OnDeviceDisplayChanged;
+ });
}
private void OnDeviceDisplayChanged(object? sender, DisplayInfoChangedEventArgs e) =>
diff --git a/src/Uno.Extensions.Maui.UI/Internals/ConversionExtensions.cs b/src/Uno.Extensions.Maui.UI/Internals/ConversionExtensions.cs
index d6dd287622..ac7a604b00 100644
--- a/src/Uno.Extensions.Maui.UI/Internals/ConversionExtensions.cs
+++ b/src/Uno.Extensions.Maui.UI/Internals/ConversionExtensions.cs
@@ -10,15 +10,26 @@ public static Microsoft.Maui.Controls.ResourceDictionary ToMauiResources(this Re
output.MergedDictionaries.Add(merged.ToMauiResources());
}
- foreach (var key in input.Keys)
+ try
{
- if (input.MergedDictionaries.Any(x => x.ContainsKey(key)))
+ foreach (var kvp in input)
{
- continue;
- }
+ try
+ {
+ if (input.MergedDictionaries.Any(x => x.ContainsKey(kvp.Key)))
+ {
+ continue;
+ }
- TryAddValue(ref output, key, input[key]);
+ TryAddValue(ref output, kvp.Key, kvp.Value);
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine($"Failed to convert resource {kvp.Key} with value {kvp.Value} to Maui: {e}");
+ }
+ }
}
+ catch { } // TODO: Work out how to handle exceptions being raised when accessing dictionary with themeresources
return output;
}