One async result contract

Managed Dialog API

Express a complete native decision dialog without platform-specific application code.

Explore source
Parent systemNativeMessageBox
StatusActive
Modules1
RepositoryNativeMessageBox/NativeMessageBox
  1. 01

    Async managed client

  2. 02

    Custom button identities and roles

  3. 03

    Structured outcome, input, and timeout result

  4. 04

    Logging and exception-oriented variants

From intent
to working system.

01

Describe

Portable options capture message, actions, content, and policy.

02

Marshal

The managed host transfers validated data to the active native implementation.

03

Present

The operating system renders a native dialog on its required thread.

04

Return

One result reports outcome, button, input, checkbox, and timeout state.

Adopt this
capability.

Start with the primary module, then add the related packages only when the application needs those layers. Replace VERSION with the current NuGet version.

01 · Install
Terminal
dotnet add package NativeMessageBox
02 · Use · csharp
QuickStart.cs
var result = await NativeMessageBoxClient.ShowAsync(
new MessageBoxOptions(
message: "Export completed. Open the file?",
buttons: new[]
{
new MessageBoxButton(1, "Open", isDefault: true),
new MessageBoxButton(0, "Close", isCancel: true)
},
title: "Export"));

Use one layer.
Compose the rest.

Read the module beside the complete system.

The implementation, samples, issues, and release notes stay in the parent repository so module details remain connected to the product architecture.

NativeMessageBox

Search everything.

Loading the index…

move open esc close

Preparing metadata and full-text search…