Native dialogs everywhere
NativeMessageBox
Ask a native question through one contract while preserving each platform’s strengths.
Overview
A managed and native ABI for advanced message dialogs across Windows, macOS, Linux, iOS, Android, and WebAssembly.
NativeMessageBox provides one managed contract and one native C ABI over six platform implementations. Advanced buttons, input, verification, secondary content, links, timeouts, thread rules, packaging, and fallback behavior remain explicit instead of being flattened to the lowest common denominator.
Six platform implementations
Custom buttons, input, and verification
Timeouts and secondary content
Managed .NET and native C APIs
Built for
Where it fits.
- Cross-platform desktop and mobile applications
- Native C/C++ and managed .NET hosts
- Apps that need richer native prompts than OK/Cancel
Compatibility & status
Advanced dialogs
Native mobile dialogs
Async overlay
Versioned ABI
In the work
Real output,
not a mockup.

Architecture
Clear layers.
Replaceable seams.
Contracts
Portable options and results describe buttons, content, input, policy, and outcomes.
Managed host
The .NET client resolves runtime assets, logging, threading, and errors.
Native ABI
A versioned header and marshaling boundary serve native and managed callers.
Platforms
Windows, macOS, GTK, iOS, Android, and Web implementations preserve native behavior.
Inside NativeMessageBox
One repository.
Multiple serious systems.
Explore the focused capabilities, their package boundaries, architecture, installation, and smallest useful example.
A .NET client models titles, messages, icons, custom buttons, defaults, cancellation, input, verification, secondary content, help links, timeouts, and structured results.
1 module→02 · Beyond OK and CancelAdvanced Dialog ContentText or password input, combo choices, verification and suppression checkboxes, informative and expanded text, footers, help links, custom icons, auto-close, and ESC policy compose richer native prompts where supported.
1 module→03 · Six operating-system implementationsNative & Mobile BackendsTaskDialog/MessageBoxW, NSAlert, GTK with Zenity fallback, UIAlertController, Android AlertDialog, and a WebAssembly overlay implement the shared managed and native C ABI.
1 module→Quick start
From package
to first frame.
Choose the package workflow used by your repository, then start from the smallest working example. Replace VERSION with the current stable or prerelease version shown on NuGet.
dotnet add package NativeMessageBox<PackageReference Include="NativeMessageBox" Version="VERSION" /><PackageVersion Include="NativeMessageBox" Version="VERSION" />var result = await NativeMessageBoxClient.ShowAsync( new MessageBoxOptions( message: "Save changes?", buttons: MessageBoxButtons.YesNoCancel, title: "Document"));Package surface
Start focused.
Compose as needed.
Source, docs, samples, and releases
The repository is the source of truth.
Use the current documentation and samples, inspect changes, report issues, or support continued open-source maintenance.