Gui.SystemDialogs.ProGpu.Sharp
0.1.1-preview47
See the version list below for details.
dotnet add package Gui.SystemDialogs.ProGpu.Sharp --version 0.1.1-preview47
NuGet\Install-Package Gui.SystemDialogs.ProGpu.Sharp -Version 0.1.1-preview47
<PackageReference Include="Gui.SystemDialogs.ProGpu.Sharp" Version="0.1.1-preview47" />
<PackageVersion Include="Gui.SystemDialogs.ProGpu.Sharp" Version="0.1.1-preview47" />
<PackageReference Include="Gui.SystemDialogs.ProGpu.Sharp" />
paket add Gui.SystemDialogs.ProGpu.Sharp --version 0.1.1-preview47
#r "nuget: Gui.SystemDialogs.ProGpu.Sharp, 0.1.1-preview47"
#:package Gui.SystemDialogs.ProGpu.Sharp@0.1.1-preview47
#addin nuget:?package=Gui.SystemDialogs.ProGpu.Sharp&version=0.1.1-preview47&prerelease
#tool nuget:?package=Gui.SystemDialogs.ProGpu.Sharp&version=0.1.1-preview47&prerelease
Gui.SystemDialogs.Sharp
Framework-neutral system dialog contracts with separate GUI-framework adapters.
Install only the adapter package for your UI stack. Each adapter depends on the core contracts package automatically.
NuGet packages
| Package | UI stack | Install |
|---|---|---|
| Gui.SystemDialogs.Sharp | Contracts only | dotnet add package Gui.SystemDialogs.Sharp |
| Gui.SystemDialogs.Wpf.Sharp | WPF | dotnet add package Gui.SystemDialogs.Wpf.Sharp |
| Gui.SystemDialogs.WinUI.Sharp | WinUI 3 | dotnet add package Gui.SystemDialogs.WinUI.Sharp |
| Gui.SystemDialogs.Maui.Sharp | .NET MAUI (Windows) | dotnet add package Gui.SystemDialogs.Maui.Sharp |
| Gui.SystemDialogs.Avalonia.Sharp | Avalonia 12 | dotnet add package Gui.SystemDialogs.Avalonia.Sharp |
| Gui.SystemDialogs.Consolonia.Sharp | Consolonia / Avalonia 11 | dotnet add package Gui.SystemDialogs.Consolonia.Sharp |
| Gui.SystemDialogs.ProGpu.Sharp | ProGPU | dotnet add package Gui.SystemDialogs.ProGpu.Sharp |
| Gui.SystemDialogs.Windows.Sharp | Shared Windows helpers | Usually pulled in transitively by WinUI / MAUI |
Versioning:
0.1.0is the first public release. Earlier0.0.xbuilds were pre-release validation publishes. The ProGPU adapter uses0.1.1-previewNNsuffixes that trackProGPU.WinUIpreview releases without bumping the stable adapter family.
Quick start
using Gui.SystemDialogs.Sharp;
using Gui.SystemDialogs.Wpf.Sharp;
IFilePickerService filePicker = new WpfFilePickerService();
var path = await filePicker.OpenFileAsync(new OpenFileDialogOptions
{
Title = "Open document",
Filters =
[
new FileDialogFilter("Text files", ".txt"),
new FileDialogFilter("All files", "*.*"),
],
});
Avalonia resolves the owner window internally or via a Func<TopLevel?> passed to the constructor:
using Gui.SystemDialogs.Avalonia.Sharp;
IFilePickerService filePicker = new AvaloniaFilePickerService();
Contracts (Gui.SystemDialogs.Sharp)
IFilePickerService— open / open-many / save (local paths only)IFolderPickerService— select folderIApplicationExitService— request application/process exit- Option/filter models (
FileDialogFilter,OpenFileDialogOptions, …)
The contracts assembly must not reference GUI, Windows, WinRT, HWND, or framework types.
Adapters
| Project | Role |
|---|---|
Gui.SystemDialogs.Windows.Sharp |
HWND ownership + WinRT filter mapping |
Gui.SystemDialogs.Wpf.Sharp |
WPF pickers + exit + WpfFileFilterFormat |
Gui.SystemDialogs.WinUI.Sharp |
Windows App SDK pickers + exit |
Gui.SystemDialogs.Maui.Sharp |
Windows-targeted MAUI pickers + exit |
Gui.SystemDialogs.Avalonia.Sharp |
Avalonia 12 storage pickers + exit |
Gui.SystemDialogs.Consolonia.Sharp |
Consolonia / Avalonia 11 pickers + exit |
Gui.SystemDialogs.ProGpu.Sharp |
ProGPU pickers + exit |
Dependency direction
Gui.SystemDialogs.Sharp
↑
├── Gui.SystemDialogs.Avalonia.Sharp
├── Gui.SystemDialogs.Consolonia.Sharp
├── Gui.SystemDialogs.ProGpu.Sharp
├── Gui.SystemDialogs.Wpf.Sharp
└── Gui.SystemDialogs.Windows.Sharp
↑
├── Gui.SystemDialogs.WinUI.Sharp
└── Gui.SystemDialogs.Maui.Sharp
Development
Requirements: .NET 10 SDK, Python 3 (for the boundary check).
python eng/verify-contract-boundary.py
dotnet test Gui.SystemDialogs.Sharp.slnx -c Release --filter Category!=Smoke
Local package build
dotnet pack Gui.SystemDialogs.Sharp.slnx -c Release -o artifacts/packages
The default local version is 0.1.1 for the stable adapter family (see
Directory.Build.props). The ProGPU adapter overrides <Version> in its own
.csproj (for example 0.1.1-preview47). Override for a full-family dry run:
dotnet pack Gui.SystemDialogs.Sharp.slnx -c Release -o artifacts/packages -p:Version=0.1.1
Local ProGPU adapter build
The ProGPU adapter carries its own <Version> in
Gui.SystemDialogs.ProGpu.Sharp.csproj (for example 0.1.1-preview47):
dotnet pack Gui.SystemDialogs.ProGpu.Sharp/Gui.SystemDialogs.ProGpu.Sharp.csproj -c Release -o artifacts/packages
Native WPF smoke tests (manual / nightly)
FlaUI-driven common dialogs in tests/Gui.SystemDialogs.Wpf.Sharp.SmokeTests. Opt-in via env var (skipped otherwise):
set GUI_SYSTEMDIALOGS_SMOKE=1
dotnet test tests/Gui.SystemDialogs.Wpf.Sharp.SmokeTests -c Release
Publishing
CI runs on every push and pull request to main.
Full family release
All eight packages share the version passed at pack time (default 0.1.1 in
Directory.Build.props). Push a tag to publish the full family:
git tag v0.1.1
git push origin v0.1.1
This runs .github/workflows/publish.yml and pushes every *.nupkg in the
solution pack output.
Set the NUGET_API_KEY secret in the GitHub nuget environment before the
first publish.
ProGPU adapter-only release
When only Gui.SystemDialogs.ProGpu.Sharp needs a ProGPU preview bump, use the
selective workflow so stable adapters stay on their current NuGet versions.
Before tagging or dispatching:
- Bump
<Version>inGui.SystemDialogs.ProGpu.Sharp/Gui.SystemDialogs.ProGpu.Sharp.csproj. - Bump the
ProGPU.WinUIdependency to the matching preview. - Add a
## [0.1.1-previewNN]entry toCHANGELOG.md. - Merge to
main.
Then either push a tag:
git tag v0.1.1-preview47
git push origin v0.1.1-preview47
Or run Publish ProGPU adapter manually in GitHub Actions with version
0.1.1-preview47.
This runs .github/workflows/publish-progpu.yml, which verifies the csproj and
changelog, runs ProGPU adapter tests, packs only
Gui.SystemDialogs.ProGpu.Sharp, and pushes just that .nupkg/.snupkg.
Tags matching v0.1.1-preview* intentionally skip the full-family
publish.yml workflow.
License
MIT — see LICENSE.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Gui.SystemDialogs.Sharp (>= 0.1.1)
- ProGPU.WinUI (>= 0.1.0-preview.47 && < 0.2.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.2-preview48 | 95 | 8/17/2026 |
| 0.1.1-preview47 | 80 | 8/11/2026 |
| 0.1.1-preview | 77 | 7/28/2026 |
| 0.1.0 | 99 | 7/27/2026 |
| 0.0.2 | 85 | 7/27/2026 |