Panda3D.Framework.Gui
0.1.0-preview.13
dotnet add package Panda3D.Framework.Gui --version 0.1.0-preview.13
NuGet\Install-Package Panda3D.Framework.Gui -Version 0.1.0-preview.13
<PackageReference Include="Panda3D.Framework.Gui" Version="0.1.0-preview.13" />
<PackageVersion Include="Panda3D.Framework.Gui" Version="0.1.0-preview.13" />
<PackageReference Include="Panda3D.Framework.Gui" />
paket add Panda3D.Framework.Gui --version 0.1.0-preview.13
#r "nuget: Panda3D.Framework.Gui, 0.1.0-preview.13"
#:package Panda3D.Framework.Gui@0.1.0-preview.13
#addin nuget:?package=Panda3D.Framework.Gui&version=0.1.0-preview.13&prerelease
#tool nuget:?package=Panda3D.Framework.Gui&version=0.1.0-preview.13&prerelease
Panda3D.Framework.Gui
Per-view GUI for the Panda3D.Framework game framework: explicit, typed C# Widget
classes over Panda's native PGui items (PGButton, PGEntry, PGSliderBar,
PGScrollFrame, PGWaitBar). Every PGui interaction is surfaced as a typed
IObservable<T> — no string event ever reaches a consumer. Replaces direct.gui.DirectGui.
Provides
AddGui()— registersIGuias a scoped per-view service (requires rendering and events).IGui—Add<T>(widget, parent?)andAdd(label, parent?)to materialize and wire a widget under the view's overlay roots.Widget/Widget<TItem>— base wrapper:Node, the nativeItem,Visible,Enabled, and typed observables (Entered/Exited/Within/Without/Pressed/Released/FocusChanged).- Widgets:
Button(Clicked),Entry(Text,Submitted/Changed/Overflowed/CursorMoved),SliderandScrollBar(Value/Ratio/Min/Max/ValueChanged),ScrollFrame(Canvas/VirtualFrame/Scrolled),ProgressBar(Value/Percent), andLabel(text-only, non-interactive).
Usage
services.AddGui();
var gui = view.Services.GetRequiredService<IGui>(); // per-view; at root this is the main view
var play = gui.Add(new Button("Play"));
play.Node.SetPos(0, 0, -0.2f);
play.Clicked.Subscribe(_ => StartGame());
var name = gui.Add(new Entry(width: 12));
name.Submitted.Subscribe(text => Join(text));
var volume = gui.Add(new Slider(vertical: false, length: 0.8f, width: 0.08f) { Min = 0, Max = 1, Value = 0.7f });
volume.ValueChanged.Subscribe(v => audio.Sfx.SetVolume(v));
Part of Panda3D.Framework; the Panda3D.Framework umbrella package pulls in every library plus the bindings and native runtimes.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
-
net8.0
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Panda3D.Async (>= 1.11.0-preview.6)
- Panda3D.Framework.Abstractions (>= 0.1.0-preview.13)
- Panda3D.Framework.Events (>= 0.1.0-preview.13)
- Panda3D.Framework.Rendering (>= 0.1.0-preview.13)
- Panda3D.Interop (>= 1.11.0-preview.4122)
- System.Reactive (>= 6.0.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Panda3D.Framework.Gui:
| Package | Downloads |
|---|---|
|
Panda3D.Framework
The complete Panda3D.Framework: every feature library, the C# bindings, and the native runtimes. Reference this one package to build and run a game. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-preview.13 | 63 | 8/3/2026 |
| 0.1.0-preview.11 | 69 | 8/1/2026 |
| 0.1.0-preview.5 | 61 | 7/20/2026 |