MASS4.Guinevere.Excalibur
2.0.1
dotnet add package MASS4.Guinevere.Excalibur --version 2.0.1
NuGet\Install-Package MASS4.Guinevere.Excalibur -Version 2.0.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MASS4.Guinevere.Excalibur" Version="2.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MASS4.Guinevere.Excalibur" Version="2.0.1" />
<PackageReference Include="MASS4.Guinevere.Excalibur" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add MASS4.Guinevere.Excalibur --version 2.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: MASS4.Guinevere.Excalibur, 2.0.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package MASS4.Guinevere.Excalibur@2.0.1
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=MASS4.Guinevere.Excalibur&version=2.0.1
#tool nuget:?package=MASS4.Guinevere.Excalibur&version=2.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Guinevere.Excalibur
A ready-to-use set of default controls for the Guinevere
immediate-mode GUI library. Everything here is an extension method on Gui living in the Guinevere
namespace, so it drops into an existing Guinevere app with a single package reference and no setup.
Install
dotnet add package MASS4.Guinevere.Excalibur
Quick Start
using Guinevere;
public partial class App
{
private bool _isEnabled = true;
private string _name = "";
private float _volume = 0.5f;
private int _activeTab;
public void Draw(Gui gui)
{
if (gui.Button("Run")) { /* clicked */ }
gui.Checkbox(ref _isEnabled, "Enable feature");
gui.TextInput(ref _name, "Your name");
gui.Slider(ref _volume, 0f, 1f);
gui.Tabs(ref _activeTab, tabs =>
{
tabs.Tab("Home", () => gui.DrawText("Home content", 12, Color.Gray));
tabs.Tab("Settings", () => gui.DrawText("Settings content", 12, Color.Gray));
});
}
}
Controls
| Control | Description |
|---|---|
Button, IconButton |
Filled or icon buttons with hover/press states, focus and keyboard activation |
Checkbox, Toggle |
on/off selection |
RadioButton, RadioGroup |
exclusive selection |
Dropdown |
options list that opens over the rest of the frame |
TextInput, PasswordInput, TextArea |
single-line, masked, and multi-line text editing |
NumberField |
numeric input with Unity-style scrub editing |
ObjectField |
a labelled field for compact object rows |
Slider, Splitter |
numeric scrub under drag, and draggable split of two panes |
ProgressBar |
determinate and indeterminate progress |
Tabs, TabBar, TabStrip, PillTabs, VerticalTabs |
tab variants; tabs close only when marked closable: true |
Breadcrumb |
navigable trail with icons and child menus |
TreeView |
virtualised tree — thousands of rows cost the same as a screenful |
MenuBar, Flyout, ContextMenu |
menu bars and flyouts with submenus, separators, shortcuts, disabled and checkable items |
Popup, ModalPopup, Tooltip |
anchored and modal overlays, delayed tooltips |
Toast, Toasts |
animated toast/snackbar panels stacked in a corner |
DockSpace, DockLayout |
docking — split, tab, float, tear-off and close with layout persistence |
Menu Bar
gui.MenuBar(menus =>
{
menus.Menu("File", file =>
{
file.Item("New", () => NewFile(), "Ctrl+N");
file.Separator();
file.CheckItem("Autosave", () => _autosave, v => _autosave = v);
file.Submenu("Export", export =>
{
export.Item("PNG", () => Export("png"));
export.Item("SVG", () => Export("svg"));
});
});
menus.Menu("Help", help => help.Item("About", () => ShowAbout()));
});
Tree View
var state = new TreeViewState();
var items = new List<TreeItem>
{
new("src", "src", 0, HasChildren: true),
new("src/main", "main.cs", 1),
new("assets", "assets", 0, HasChildren: true),
};
gui.TreeView(state, items, onClick: e => SelectedPath = e.Item.Label);
Docking
var layout = new DockLayout
{
Root = new DockSplit(Axis.Horizontal, new DockLeaf("files"), new DockLeaf("editor"), 0.4f)
};
gui.DockSpace(layout,
panelInfo: id => new DockPanelInfo("Files"),
renderPanel: (id, g) => g.DrawText(id));
License
This project is licensed under the MIT License. See the LICENSE file for details.
| 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- JetBrains.Annotations (>= 2026.2.0)
- MASS4.Guinevere (>= 2.0.1)
- SkiaSharp (>= 4.152.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 |
|---|---|---|
| 2.0.1 | 47 | 9/14/2026 |