{"id":13691601,"url":"https://github.com/FmgLib/FmgLib.MauiMarkup","last_synced_at":"2025-05-02T15:32:42.178Z","repository":{"id":218184270,"uuid":"745817812","full_name":"FmgLib/FmgLib.MauiMarkup","owner":"FmgLib","description":"C# Code Markup Library for .NET MAUI: UI Development, Multi Lang (Localization) with Fluent Methods and Hot Reload","archived":false,"fork":false,"pushed_at":"2025-05-01T11:16:08.000Z","size":13879,"stargazers_count":80,"open_issues_count":1,"forks_count":7,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-05-01T12:25:55.234Z","etag":null,"topics":["csharp","csharp-code","csharp-markup","csharp-ui","dotnet","dotnet-core","dotnet-maui","dotnetcore","dotnetmaui","localization","maui","maui-app"],"latest_commit_sha":null,"homepage":"https://fmgyazilim.com/en/docs/fmglibmauimarkup","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FmgLib.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-01-20T08:25:49.000Z","updated_at":"2025-04-28T18:01:19.000Z","dependencies_parsed_at":"2024-02-11T16:26:15.839Z","dependency_job_id":"d2184b05-25fd-486e-9334-617057719686","html_url":"https://github.com/FmgLib/FmgLib.MauiMarkup","commit_stats":null,"previous_names":["fmglib/fmglib.mauimarkup"],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FmgLib%2FFmgLib.MauiMarkup","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FmgLib%2FFmgLib.MauiMarkup/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FmgLib%2FFmgLib.MauiMarkup/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FmgLib%2FFmgLib.MauiMarkup/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FmgLib","download_url":"https://codeload.github.com/FmgLib/FmgLib.MauiMarkup/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252063116,"owners_count":21688651,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","csharp-code","csharp-markup","csharp-ui","dotnet","dotnet-core","dotnet-maui","dotnetcore","dotnetmaui","localization","maui","maui-app"],"created_at":"2024-08-02T17:00:47.240Z","updated_at":"2025-05-02T15:32:37.164Z","avatar_url":"https://github.com/FmgLib.png","language":"C#","funding_links":[],"categories":["UI"],"sub_categories":[],"readme":"### Free .NET MAUI Libraries by FmgLib\n\n\n| NuGet Package | Link | Repo Info |\n|--------------|------|-------|\n| `FmgLib.MauiMarkup` | [![NuGet](https://buildstats.info/nuget/FmgLib.MauiMarkup?includePreReleases=true)](https://www.nuget.org/packages/FmgLib.MauiMarkup/) | [![GitHub Stars](https://img.shields.io/github/stars/FmgLib/FmgLib.MauiMarkup?style=flat-square\u0026color=blue)](https://github.com/FmgLib/FmgLib.MauiMarkup/stargazers) [![GitHub Forks](https://img.shields.io/github/forks/FmgLib/FmgLib.MauiMarkup?style=flat-square\u0026color=green)](https://github.com/FmgLib/FmgLib.MauiMarkup/forks) [![GitHub last-commit](https://img.shields.io/github/last-commit/FmgLib/FmgLib.MauiMarkup?style=flat-square)](https://github.com/FmgLib/FmgLib.MauiMarkup/commits) |\n| `FmgLib.MauiMarkup.Template` | [![NuGet](https://buildstats.info/nuget/FmgLib.MauiMarkup.Template?includePreReleases=true)](https://www.nuget.org/packages/FmgLib.MauiMarkup.Template/) | - |\n\n\n### Free .NET MAUI Project Templates by FmgLib\n\n| Template | Link |\n|--------------|------|\n| `FmgLib .NET MAUI Markup App` | [![Visual Studio Marketplace](https://img.shields.io/visual-studio-marketplace/r/FmgLib.FmgLibMauiMarkupTemplate)](https://marketplace.visualstudio.com/items?itemName=FmgLib.FmgLibMauiMarkupTemplate\u0026ssr=false#overview) [![Visual Studio Marketplace](https://img.shields.io/visual-studio-marketplace/i/FmgLib.FmgLibMauiMarkupTemplate)](https://marketplace.visualstudio.com/items?itemName=FmgLib.FmgLibMauiMarkupTemplate\u0026ssr=false#overview)|\n\n\n\n# **FmgLib.MauiMarkup**\n\nFmgLib.MauiMarkup is a specialized library crafted for .NET MAUI. This library allows you to code directly in C# without the necessity of employing XAML language. It provides developers with a straightforward and flexible approach to building user interfaces using C# code. With FmgLib.MauiMarkup, you can now develop application interfaces in a code-focused manner, avoiding the complexities of dealing with XAML files. This library accelerates your development process while enabling you to write more readable and manageable code.\n\nFmgLib.MauiMarkup provides extension methods for all properties provided for a View on the XAML side.\n\n- Visit FmgLib.MauiMarkup [Documentation](https://fmgyazilim.com/en/fmglibmauimarkup/)\n\n# Getting Started\n\n### Creating a new FmgLib.MauiMarkup project from CLI\n\nFmgLib provides a project template to start a new project with FmgLib.MauiMarkup.\n\n**Install latest templates from NuGet:**\n```bash\ndotnet new install FmgLib.MauiMarkup.Template\n```\n\n\n**Create a new project:**\n\n```bash\ndotnet new fmglib-mauimarkup-app -o my-new-project\n```\n\n\u003cbr\u003e\n\n### Existing Projects\n\nInstall the [FmgLib.MauiMarkup](https://www.nuget.org/packages/FmgLib.MauiMarkup/) NuGet package to your MAUI application.\n```bash\ndotnet add package FmgLib.MauiMarkup\n```\n\n\n\nFor example:\n\nIf we were to write XAML code for the Image class, it would look like this:\n```xaml\n\u003cImage\n    Source=\"dotnet_bot.png\"\n    HeightRequest=\"100\"\n    WidthRequest=\"150\"\n    Grid.Row=\"0\"\n    Grid.Column=\"1\"\n    Grid.RowSpan=\"2\"\n    Opacity=\".8\" /\u003e\n```\n\nThe C# equivalent with the help of FmgLib.MauiMarkup would be as follows:\n```csharp\nnew Image()\n.Source(\"dotnet_bot.png\")\n.Row(0)\n.Column(1)\n.RowSpan(2)\n.SizeRequest(150,100)\n.Opacity(.8)\n```\n\nSimilarly, we can see this for other Views. Let's write a few sample codes as an example:\n```csharp\nnew Label()\n.Text(\"fmglib.mauimarkup\")\n.FontSize(12)\n.Row(1)\n.TextColor(Colors.Green)\n.FontAttributes(FontAttributes.Bold)\n.Margin(new Thickness(5,3,0,5))\n```\n\n```csharp\nthis\n.BackgroundImageSource(\"background.jpg\")\n.Content(\n    new StackLayout()\n    .Center()\n    .Children(\n        new ActivityIndicator()\n        .IsRunning(true)\n        .HeightRequest(70)\n        .WidthRequest(70)\n        .Center()\n        .InvokeOnElement(ai =\u003e ai.Loaded += CheckLogin(sender, e))\n    )\n);\n```\n\n## Extensions for 3rd Party Controls\n\nFmgLib.MauiMarkup library can also generate extension methods for controls from third-party libraries. To achieve this, you should utilize the MauiMarkupAttribute provided by FmgLib.MauiMarkup.\n\nSimply specify the control for which you want to create extension methods as `[MauiMarkup(typeof(YourControl))]`.\n\nThe constructor method of the `MauiMarkup()` attribute automatically generates extension methods for BindableProperties and Events found within the type provided as an argument. **You can provide a minimum of 1 type inside the constructor method, and there is no maximum limit.** *Multiple MauiMarkup attributes can be added to a single class.*\n\nLet's look at an example:\n\n```csharp\nusing FmgLib.MauiMarkup;\n\nnamespace GeneratedExam;\n\n[MauiMarkup(typeof(ZXing.Net.Maui.Controls.BarcodeGeneratorView))]\npublic class MyBarcodeGeneratorView { }\n\n[MauiMarkup(typeof(ZXing.Net.Maui.Controls.CameraView))]\npublic class MyCameraView { }\n\n\n[MauiMarkup(typeof(ZXing.Net.Maui.Controls.CameraBarcodeReaderView))]\npublic class MyCameraBarcodeReaderView { }\n\n[MauiMarkup(typeof(SkiaSharp.Extended.UI.Controls.SKLottieView))]\npublic class MySkLottieView { }\n\n```\n\nOr instead of dealing with it like this, it can be used like this:\n\n```csharp\n\nusing Microsoft.Extensions.Logging;\nusing FmgLib.MauiMarkup;\nusing SkiaSharp.Extended.UI.Controls;\nusing ZXing.Net.Maui.Controls;\nusing UraniumUI.Material.Controls;\nnamespace MauiApp1\n{\n    [MauiMarkup(typeof(CameraView))]\n    [MauiMarkup(typeof(SKLottieView), typeof(SKFileLottieImageSource), typeof(DataGrid))]\n    [MauiMarkup(typeof(SKConfettiView), typeof(BarcodeGeneratorView),typeof(InputField),typeof(EditorField),typeof(TextField))]\n    public static class MauiProgram\n    {\n        public static MauiApp CreateMauiApp()\n        {\n            var builder = MauiApp.CreateBuilder();\n            builder\n                .UseMauiApp\u003cApp\u003e()\n                .ConfigureFonts(fonts =\u003e\n                {\n                    fonts.AddFont(\"OpenSans-Regular.ttf\", \"OpenSansRegular\");\n                    fonts.AddFont(\"OpenSans-Semibold.ttf\", \"OpenSansSemibold\");\n                });\n\n#if DEBUG\n    \t\tbuilder.Logging.AddDebug();\n#endif\n            return builder.Build();\n        }\n    }\n}\n```\n\nFor example, let's write the sample code for the **TextField and SKLottieView Controls**:\n\n```csharp\nnew TextField()\n.Title(\"Password\")\n.TitleColor(Colors.LightGray)\n.AccentColor(Colors.CadetBlue)\n.TextColor(Colors.White)\n.IsPassword(true),\n\nnew SKLottieView()\n.Source(new SKFileLottieImageSource().File(\"iconapp.json\"))\n.RepeatCount(-1)\n.HeightRequest(250)\n.WidthRequest(250)\n```\n\nWith the **MauiMarkupAttachedPropAttribute**, you can easily create extension methods for **AttachedProperties** within Control classes from third-party libraries.\n**The constructor's first parameter takes the type of the Control class, the second parameter takes the name of the AttachedProperty, the third parameter takes the value type that the AttachedProperty can accept, and the fourth parameter takes the type to which the AttachedProperty will be applied.**\n\nExample usage:\n\n```csharp\n[MauiMarkupAttachedProp(typeof(InputKit.Shared.Controls.FormView), nameof(InputKit.Shared.Controls.FormView.IsSubmitButtonProperty), typeof(bool), typeof(Button))]\n[MauiMarkup(typeof(InputKit.Shared.Controls.FormView))]\npublic class MyFormView { }\n```\nOR\n```csharp\n\nusing Microsoft.Extensions.Logging;\nusing FmgLib.MauiMarkup;\n\nnamespace MauiApp1\n{\n    [MauiMarkupAttachedProp(typeof(InputKit.Shared.Controls.FormView), nameof(InputKit.Shared.Controls.FormView.IsSubmitButtonProperty), typeof(bool), typeof(Button))]\n    [MauiMarkup(typeof(InputKit.Shared.Controls.FormView))]\n    public static class MauiProgram\n    {\n        public static MauiApp CreateMauiApp()\n        {\n            var builder = MauiApp.CreateBuilder();\n            builder\n                .UseMauiApp\u003cApp\u003e()\n                .ConfigureFonts(fonts =\u003e\n                {\n                    fonts.AddFont(\"OpenSans-Regular.ttf\", \"OpenSansRegular\");\n                    fonts.AddFont(\"OpenSans-Semibold.ttf\", \"OpenSansSemibold\");\n                });\n\n#if DEBUG\n    \t\tbuilder.Logging.AddDebug();\n#endif\n            return builder.Build();\n        }\n    }\n}\n```\n\nThe usage of the AttachedProperty in the Button class will be as follows:\n```csharp\nnew Button()\n.Text(\"Login\")\n.FontAttributes(Bold)\n.IsSubmitButton(true)\n```\n\n\n**Genral Example Code:**\n```csharp\n\nusing Microsoft.Maui.Layouts;\nusing FmgLib.MauiMarkup;\n\nnamespace MyOrderApp.Views;\n\npublic partial class HomePage : BasePage\u003cHomePageViewModel\u003e\n{\n    public HomePage(HomePageViewModel viewModel) : base(viewModel, \"Home Page\")\n    {\n    }\n\n    public override void Build()\n    {\n        this\n        .Content(\n            new VerticalStackLayout()\n            .Padding(10)\n            .Children(\n                new SearchBar()\n                .Placeholder(\"Ürünlerde Ara.\")\n                .Margin(10)\n                .Assign(out var search)\n                .SearchCommand(BindingContext.SearchCommand)\n                .Bind(SearchBar.SearchCommandParameterProperty, \"Text\", source: search),\n\n                new Frame()\n                .CornerRadius(15)\n                .BackgroundColor(Colors.Blue)\n                .BorderColor(Colors.Blue)\n                .HeightRequest(150)\n                .Margin(new Thickness(15,7))\n                .Padding(0)\n                .Content(\n                    new Grid()\n                    .ColumnDefinitions(e =\u003e e.Star(5).Star(5))\n                    .RowDefinitions(e =\u003e e.Star(5).Star(5))\n                    .Children(\n                        new Frame()\n                        .Row(0)\n                        .Column(0)\n                        .Margin(new Thickness(0,20,0,0))\n                        .Padding(0)\n                        .CornerRadius(0)\n                        .BackgroundColor(Colors.DarkBlue)\n                        .BorderColor(Colors.DarkBlue)\n                        .Content(\n                            new Label()\n                            .Text(\"%50 İndirim\")\n                            .TextColor(Colors.White)\n                            .FontAttributes(FontAttributes.Bold)\n                            .FontSize(20)\n                            .Center()\n                        ),\n\n                        new Label()\n                        .Text(\"Tüm Unlu Mamüllerde her gün saat 21:00'dan sonra!\")\n                        .FontSize(12)\n                        .Row(1)\n                        .Column(0)\n                        .TextColor(Colors.White)\n                        .FontAttributes(FontAttributes.Italic)\n                        .Margin(new Thickness(10,3,0,0)),\n\n                        new Image()\n                        .Source(\"white_board.png\")\n                        .Row(0)\n                        .Column(1)\n                        .RowSpan(2)\n                        .SizeRequest(150,100)\n                        .Opacity(.8)\n                    )\n                ),\n\n                new Grid()\n                .ColumnDefinitions(e =\u003e e.Star(7).Star(3))\n                .FillHorizontal()\n                .Padding(10)\n                .Children(\n                    new Label()\n                    .Text(\"Son Ürünler\")\n                    .FontAttributes(FontAttributes.Bold)\n                    .FontSize(18)\n                    .CenterVertical()\n                    .Column(0)\n                    .AlignStart(),\n\n\n                    new Label()\n                    .Text(\"Tümünü Gör\")\n                    .FontSize(15)\n                    .CenterVertical()\n                    .Column(1)\n                    .AlignEnd()\n                    .TextDecorations(TextDecorations.Underline)\n                    .GestureRecognizers(\n                        new TapGestureRecognizer()\n                        .Command(BindingContext.GotoAllProductsCommand)\n                    )\n                ),\n\n                new CollectionView()\n                .SelectionMode(SelectionMode.None)\n                .Bind(CollectionView.ItemsSourceProperty, \"Products\")\n                .ItemsLayout(new LinearItemsLayout(ItemsLayoutOrientation.Horizontal).ItemSpacing(10))\n                .EmptyView(\n                    new VerticalStackLayout()\n                    .Children(\n                        new Label()\n                        .Text(\"Kayıt Yoktur.\")\n                        .TextColor(Colors.Red)\n                        .FontAttributes(FontAttributes.Bold)\n                        .FontSize(18)\n                    )\n                    .Center()\n                )\n                .ItemTemplate(() =\u003e\n                    new Frame()\n                    .CornerRadius(15)\n                    .BorderColor(Colors.LightGray)\n                    .BackgroundColor(Colors.LightGray)\n                    .MinimumHeightRequest(200)\n                    .MaximumWidthRequest(200)\n                    .Padding(5)\n                    .Content(\n                        new Grid()\n                        .RowDefinitions(e =\u003e e.Star(1).Star(6).Star(2).Star(1))\n                        .Padding(5)\n                        .Children(\n                            new Grid()\n                            .Row(0)\n                            .ColumnDefinitions(e =\u003e e.Star(6).Star(4))\n                            .Children(\n                                new ImageButton()\n                                .Bind(ImageButton.SourceProperty, nameof(ProductVM.IsFavorite), converter: new BoolToFavoriteImageConverter())\n                                .BackgroundColor(Colors.Transparent)\n                                .AlignStart()\n                                .SizeRequest(30, 30)\n                                .Command(BindingContext.ChangeFavoriteCommand)\n                                .Bind(ImageButton.CommandParameterProperty, \".\"),\n\n                                new Frame()\n                                .CornerRadius(20)\n                                .HeightRequest(25)\n                                .WidthRequest(50)\n                                .Padding(0)\n                                .BackgroundColor(Colors.Red)\n                                .BorderColor(Colors.Red)\n                                .Column(1)\n                                .Bind(Microsoft.Maui.Controls.Frame.IsVisibleProperty, nameof(ProductVM.IsDiscount))\n                                .Content(\n                                    new Label()\n                                    .Bind(Label.TextProperty, nameof(ProductVM.DiscountRate))\n                                    .FontSize(11)\n                                    .FontAttributes(FontAttributes.Bold)\n                                    .TextColor(Colors.White)\n                                    .Center()\n                                )\n                            ),\n\n                            new Image()\n                            .Bind(Image.SourceProperty, nameof(ProductVM.Image))\n                            .SizeRequest(80,80)\n                            .Row(1)\n                            .CenterHorizontal(),\n\n                            new VerticalStackLayout()\n                            .Row(2)\n                            .Children(\n                                new Label()\n                                .Bind(Label.TextProperty, nameof(ProductVM.Name))\n                                .FontAttributes(FontAttributes.Bold)\n                                .FontSize(11)\n                                .AlignStart()\n                                .LineBreakMode(LineBreakMode.TailTruncation)\n                                .FontAutoScalingEnabled(true),\n\n                                new HorizontalStackLayout()\n                                .Spacing(2)\n                                .Children(\n                                    new Label()\n                                    .Bind(Label.TextProperty, nameof(ProductVM.Price))\n                                    .Bind(Label.TextDecorationsProperty, nameof(ProductVM.IsDiscount), converter: new BoolToTextDecorationConverter())\n                                    .Bind(Label.FontSizeProperty, nameof(ProductVM.IsDiscount), converter: new BoolToFontSizeConverter())\n                                    .FontAttributes(FontAttributes.Bold)\n                                    .CenterVertical(),\n\n                                    new Label()\n                                    .TextColor(Colors.Red)\n                                    .FontAttributes(FontAttributes.Bold)\n                                    .CenterVertical()\n                                    .Bind(Label.IsVisibleProperty, nameof(ProductVM.IsDiscount))\n                                    .Bind(Label.TextProperty, nameof(ProductVM.DiscountPrice)),\n\n                                    new Label()\n                                    .Text(\"/\")\n                                    .FontSize(10)\n                                    .CenterVertical()\n                                    .TextColor(Colors.DarkSlateGray),\n\n                                    new Label()\n                                    .FontSize(10)\n                                    .CenterVertical()\n                                    .TextColor(Colors.DarkSlateGray)\n                                    .Bind(Label.TextProperty, nameof(ProductVM.Unit))\n                                )\n                            ),\n\n                            new Button()\n                            .Row(3)\n                            .Margin(new Thickness(0,5,0,0))\n                            .Padding(0)\n                            .Text(\"Sepete Ekle\")\n                            .BackgroundColor(Colors.Green)\n                            .FontSize(12)\n                            .FontAttributes(FontAttributes.Bold)\n                            .CenterHorizontal()\n                            .HeightRequest(35)\n                            .WidthRequest(100)\n                            .Command(BindingContext.AddProductBasketCommand)\n                            .Bind(Button.CommandParameterProperty, \".\")\n                        )\n                    )\n                ),\n\n                new Grid()\n                .ColumnDefinitions(e =\u003e e.Star(7).Star(3))\n                .FillHorizontal()\n                .Padding(10)\n                .Children(\n                    new Label()\n                    .Text(\"Kategoriler\")\n                    .FontAttributes(FontAttributes.Bold)\n                    .FontSize(18)\n                    .CenterVertical()\n                    .Column(0)\n                    .AlignStart(),\n\n\n                    new Label()\n                    .Text(\"Tümünü Gör\")\n                    .FontSize(15)\n                    .CenterVertical()\n                    .Column(1)\n                    .AlignEnd()\n                    .TextDecorations(TextDecorations.Underline)\n                    .GestureRecognizers(\n                        new TapGestureRecognizer()\n                        .Command(BindingContext.GotoAllCategoriesCommand)\n                    )\n                ),\n\n                new FlexLayout()\n                .ItemsSources(BindingContext.Categories)\n                .Assign(out var flex)\n                .Wrap(FlexWrap.Wrap)\n                .FlexBasis(FlexBasis.Auto)\n                .ItemTemplates(new DataTemplate(() =\u003e \n                    new Frame()\n                    .CornerRadius(15)\n                    .BorderColor(Colors.LightGray)\n                    .BackgroundColor(Colors.LightGray)\n                    .MinimumHeightRequest(30)\n                    .WidthRequest(180)\n                    .Padding(0)\n                    .Margin(new Thickness(1,0,5,5))\n                    .FlexBasis(FlexBasis.Auto)\n                    .Content(\n                        new Grid()\n                        .ColumnDefinitions(e =\u003e e.Star(3).Star(7))\n                        .Padding(5)\n                        .Children(\n                            new Image()\n                            .Bind(Image.SourceProperty, nameof(SubCategoryVM.Icon))\n                            .SizeRequest(30,30)\n                            .Column(0)\n                            .CenterVertical(),\n\n                            new Label()\n                            .Bind(Label.TextProperty, nameof(SubCategoryVM.Name))\n                            .TextColor(Colors.CornflowerBlue)\n                            .FontAttributes(FontAttributes.Bold)\n                            .FontSize(12)\n                            .Column(1)\n                            .FontAutoScalingEnabled(true)\n                            .CenterVertical()\n                        )\n                    )\n                ))\n            )\n            .FillHorizontal()\n        );\n    }\n}\n\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFmgLib%2FFmgLib.MauiMarkup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FFmgLib%2FFmgLib.MauiMarkup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFmgLib%2FFmgLib.MauiMarkup/lists"}