Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
U

UraniumUI

> 编程语言
Open source

The presentation framework for .NET MAUI.

1.5K stars0 likes0 views
WebsiteGitHub

About

The presentation framework for .NET MAUI.

Documentation | NuGet | Templates | Demo App | Discord

UraniumUI is a free and open-source presentation layer for .NET MAUI. It fills the UI gaps plain MAUI leaves to every team: Material-styled inputs and buttons, generated forms, validation mapping, keyboard-friendly selection controls, focus-aware custom surfaces, data grids, tree views, tab views, dialogs, bottom sheets, backdrops, icons, blur effects, code views, templates, and app-ready presentation patterns. You keep writing regular .NET MAUI: XAML, `ContentPage`, `Shell`, bindings, styles, resources, handlers, dependency injection, MVVM, and platform APIs. UraniumUI attaches to that model instead of replacing it. It is not just a collection of styled controls and it is not only an AutoFormView package. UraniumUI provides the building blocks for real app screens: form workflows, data-heavy views, hierarchical navigation, app surfaces, visual system resources, native-MAUI handlers, and extensibility points for your own controls. ## Who It Is For - .NET MAUI teams building production line-of-business, admin, data-entry, or internal tools. - Teams that want a Material presentation layer without moving away from XAML, MVVM, resources, or MAUI handlers. - Apps that need more than basic controls: validation-aware fields, data grids, tree views, tabs, dialogs, bottom sheets, and reusable page surfaces. - Developers who want incremental adoption: use one control, add one package, or start from a full template. - Teams that need accessible interactions: visible focus states, keyboard navigation, semantic hints, and custom clickable areas that behave like real controls. ## No Framework Tax Some UI stacks ask you to move your app into their way of building software. UraniumUI does not. There is no required base ViewModel, proprietary navigation model, custom application layer, generated project structure, or new UI DSL. Adopt one control, a validation-aware field set, or a full Material presentation layer. Your app remains a MAUI app. Plain MAUI in, better UI out. ## The Mental Model .NET MAUI gives you the platform foundation. UraniumUI adds the presentation architecture that most production apps end up rebuilding. | App need | UraniumUI provides | | --- | --- | | Build forms quickly | `AutoFormView` generates editors from your model, while `FormView` handles validation, submit/reset behavior, busy state, and validation summaries. | | Validate consistently | InputKit validation, DataAnnotations integration, async validators, and property-path mapping for generated or hand-written fields. | | Build data screens | `DataGrid`, `Paginator`, `TreeView`, `TabView`, `Select`, `Dropdown`, `CalendarView`, and Material input fields for real application workflows. | | Add app surfaces | `IDialogService`, modal-page dialogs, Mopups and CommunityToolkit dialog providers, form dialogs, `BottomSheetView`, and `BackdropView`. | | Keep interaction accessible | Focusable custom surfaces, keyboard-aware `Select`/`SelectField`, Material input focus states, semantic descriptions for supported controls, and best-practice guidance for custom clickable areas. | | Standardize presentation | Material color and style resources, light/dark tokens, button variants, containers, dividers, elevation, icon packs, cascading styles, and blur effects. | | Keep UI native and flexible | Controls and handlers built on MAUI primitives instead of a closed rendering stack or proprietary application model. | | Escape the defaults | Replace generated editors, customize templates, override styles, add page attachments, create themes, or use native MAUI APIs directly. | ## Accessibility Accessibility is a first-class concern in UraniumUI. The library keeps MAUI primitives available while adding focus-aware Material inputs, keyboard-activated custom surfaces, generated semantic hints in selection controls, and guidance for building custom cards, rows, and icon actions without losing accessibility. Start with the accessibility docs when building these areas: popups, dialogs, bottom sheets, `TabView`, `DataGrid`, date pickers, combo/autocomplete fields, validation messages, masked or formatted inputs, and custom clickable cards. Learn more: [Accessibility best practices](https://enisn-projects.io/docs/en/uranium/latest/best-practices/Accessibility) and [Clickable areas](https://enisn-projects.io/docs/en/uranium/latest/best-practices/ClickableAreas). ## Quick Start ### Start a New App Install the templates and create a ready-to-run UraniumUI project: ```bash dotnet new install UraniumUI.Templates dotnet new uraniumui-app -n MyMauiApp ``` For a lighter starter project: ```bash dotnet new uraniumui-blank-app -n MyMauiApp ``` You can also generate a `UraniumContentPage` item: ```bash dotnet new uraniumcontentpage -n CustomerPage -na MyMauiApp ``` Templates can configure icon packages, dialog integration, and blur support during project creation. ### Add UraniumUI to an Existing App Install the Material package. It references the core UraniumUI package and configures Material controls and `AutoFormView` editor mappings. ```bash dotnet add package UraniumUI.Material ``` Register UraniumUI in `MauiProgram.cs`: ```csharp using UraniumUI; builder .UseMauiApp() .UseUraniumUI() .UseUraniumUIMaterial(); ``` Add Material resources in `App.xaml`: ``` … ``` Read the full onboarding guide: [Getting Started](https://enisn-projects.io/docs/en/uranium/latest/Getting-Started). ## What You Can Build UraniumUI is useful when you need to ship complete MAUI screens, not just one-off controls. These are common places where it removes repeated UI plumbing. ### Forms Without Boilerplate Instead of hand-writing every field, binding, validation message, and layout row, describe the form with your model and let UraniumUI generate the editable UI. ```csharp using System.ComponentModel.DataAnnotations; public class RegisterViewModel { [Required] [EmailAddress] public string Email { get; set; } = string.Empty; [Required] public string FullName { get; set; } = string.Empty; [Range(1, 10)] public int NumberOfSeats { get; set; } [Display(Name = "I accept the terms and conditions")] public bool AcceptedTerms { get; set; } } ``` ```xml ``` Enable DataAnnotations validation once: ```bash dotnet add package UraniumUI.Validations.DataAnnotations ``` ```csharp using UraniumUI.Options; using UraniumUI.Validations; builder.Services.Configure(options => { options.ValidationFactory = DataAnnotationValidation.CreateValidations; }); ``` The same model can now drive generated editors, display names, and validation messages. If a screen needs custom behavior, override the editor mapping, change the generated layout, or replace a generated field with your own MAUI view. Learn more: [AutoFormView](https://enisn-projects.io/docs/en/uranium/latest/infrastructure/AutoFormView) and [DataAnnotations validation](https://enisn-projects.io/docs/en/uranium/latest/validations/DataAnnotations). ### Data Screens Without Rebuilding Tables Bind a collection and let `DataGrid` render rows, headers, empty states, selection columns, templates, and auto-generated columns when you want them. ```xml ``` When the screen needs more control, define explicit `DataGridColumn` items, cell templates, header templates, selection columns, and pair the grid with `Paginator`. Learn more: [DataGrid](https://enisn-projects.io/docs/en/uranium/latest/themes/material/components/DataGrid) and [Paginator](https://enisn-projects.io/docs/en/uranium/latest/themes/material/components/Paginator). ### Navigation, Hierarchies, And Multi-Section UI Use higher-level controls for the patterns that show up in real apps: hierarchical data, tabbed content, searchable/selectable lists, calendars, expanders, and dropdowns. ```xml ``` TreeView supports custom item templates, expansion state binding, lazy loading, single/multiple selection, and hierarchical checkbox selection. TabView supports lazy content templates, custom headers, dynamic tabs, placement options, and caching strategies. Learn more: [TreeView](https://enisn-projects.io/docs/en/uranium/latest/themes/material/components/TreeView), [TabView](https://enisn-projects.io/docs/en/uranium/latest/themes/material/components/TabView), [Select](https://enisn-projects.io/docs/en/uranium/latest/infrastructure/Select), and [CalendarView](https://enisn-projects.io/docs/en/uranium/latest/infrastructure/CalendarView). ### App Surfaces, Dialogs, And Visual Polish Use `UraniumContentPage` attachments for surfaces that belong to the page instead of manually layering grids and overlays. ```xml ``` The same presentation layer includes `BackdropView`, `IDialogService`, form dialogs, prompt dialogs, progress dialogs, optional Mopups and CommunityToolkit providers, Material color/style resources, icon packages, and blur effects. Learn more: [Bottom Sheet](https://enisn-projects.io/docs/en/uranium/latest/themes/material/components/BottomSheet), [Backdrop](https://enisn-projects.io/docs/en/uranium/latest/themes/material/components/Backdrop), [Dialogs](https://enisn-projects.io/docs/en/uranium/latest/dialogs/Index), and [Blurs](https://enisn-projects.io/docs/en/uranium/latest/Blurs). ## Feature Map | Area | What you get | Docs | | --- | --- | --- | | Forms and validation | `FormView`, `AutoFormView`, generated editors, validation summaries, busy state, async validators, `ValidationPath`, InputKit validation, DataAnnotations integration, and form dialogs. | [AutoFormView](https://enisn-projects.io/docs/en/uranium/latest/infrastructure/AutoFormView), [Validations](https://enisn-projects.io/docs/en/uranium/latest/validations/Index) | | Core infrastructure | `UraniumContentPage`, page attachments, `StatefulContentView`, `DynamicContentView`, `GridLayout`, MAUI handlers, and primitives for custom interactive controls. | [UraniumContentPage](https://enisn-projects.io/docs/en/uranium/latest/infrastructure/UraniumContentPage), [StatefulContentView](https://enisn-projects.io/docs/en/uranium/latest/infrastructure/StatefulContentView) | | Accessibility and interaction | Best-practice docs for keyboard navigation, visible focus, semantic descriptions, validation text, and custom clickable areas built with `ButtonView` or `StatefulContentView` instead of bare gestures. | [Accessibility](https://enisn-projects.io/docs/en/uranium/latest/best-practices/Accessibility), [Clickable Areas](https://enisn-projects.io/docs/en/uranium/latest/best-practices/ClickableAreas) | | Core components | `CalendarView`, `Select`, `Dropdown`, `AutoCompleteView`, `ExpanderView`, and `SelectableLabel`. | [Core Components](https://

GitHub Issues· 154 open

View all on GitHub
  • #1101

    [BUG] StatefulButtonHandler: "PlatformView cannot be null here" on DisconnectHandler

    Updated Sep 14, 2026
  • #1118

    [BUG] ItemDisplayBinding in Uranium 3.0 not displaying properly in PickerFields

    Updated Sep 10, 2026
  • #1090

    PickerField ItemDisplayBinding is ignored after package update

    platform-androidplatform-iostheme-material 🎨control-pickerfieldbug-verifiedUpdated Jul 23, 2026
  • #1081

    Crash when closing CommunityToolkit Popup with Button Scale VisualState on Windows

    bugplatform-windowsproject-corecontrol-buttonsbug-reportUpdated Jul 8, 2026
  • #1074

    AutoFormView source generator for AOT-safe property metadata

    enhancementfeature 🎉project-coreinfrastructure 🏗️.NETUpdated Jun 17, 2026

Highlights

  • •.NET MAUI teams building production line-of-business, admin, data-entry, or internal tools.
  • •Teams that want a Material presentation layer without moving away from XAML, MVVM, resources, or MAUI handlers.
  • •Apps that need more than basic controls: validation-aware fields, data grids, tree views, tabs, dialogs, bottom sheets, and reusable page surfaces.
  • •Developers who want incremental adoption: use one control, add one package, or start from a full template.
  • •Teams that need accessible interactions: visible focus states, keyboard navigation, semantic hints, and custom clickable areas that behave like real controls.

> Tags

C#dotnetframeworkmauimobile

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言