AoGui 1.0.0
dotnet add package AoGui --version 1.0.0
NuGet\Install-Package AoGui -Version 1.0.0
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="AoGui" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="AoGui" Version="1.0.0" />
<PackageReference Include="AoGui" />
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 AoGui --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: AoGui, 1.0.0"
#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 AoGui@1.0.0
#: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=AoGui&version=1.0.0
#tool nuget:?package=AoGui&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
AoGui - Simple C# GUI Library
A lightweight, easy-to-use C# GUI library with no external dependencies beyond .NET Windows Forms.
Features
- Simple API - Easy to learn and use
- Synchronized Properties - X/Y and Position are automatically synchronized
- No Dependencies - Uses only .NET built-in libraries
- Cross-version Support - Works with .NET 8.0, 9.0, and 10.0
Requirements
- .NET 8.0 or higher with Windows support
- Windows OS
Quick Start
using AoGui;
class Program
{
static void Main()
{
Window window = new Window(800, 600, "My App");
Button button = new Button();
button.Content = "Click me";
button.FontSize = 20;
button.TextColor = Color.White;
button.Color = Color.Black;
button.Width = 120;
button.Height = 40;
button.Position = new Vector2(100, 100);
window.Add(button);
while(window.IsRunning())
{
if (button.IsClicked())
{
// Handle click
}
window.UpdateAndRender();
}
}
}
Property Synchronization
The library automatically synchronizes X/Y with Position and Width/Height with Size:
button.Position = new Vector2(100, 100);
button.X = 200; // Position.X is now 200
button.Size = new Vector2(120, 40);
button.Width = 200; // Size.X is now 200
Controls
Button
Content- Button textFontSize- Text sizeTextColor- Text colorColor- Background colorIsClicked()- Returns true when clickedIsPressed()- Returns true while mouse is downIsReleased()- Returns true when mouse is releasedIsHovered()- Returns true when mouse is over button
Text
Content- Text to displayFontSize- Text sizeColor- Text color
Window
Add(UIElement)- Add control to windowIsRunning()- Check if window is still openUpdateAndRender()- Update and draw all controls
Building
dotnet build
Running Examples
Console Test (Quick Verification)
dotnet run --project examples/QuickTest.csproj
GUI Applications
For GUI applications, use Start-Process to run in a separate window:
# Run GUI test (recommended)
Start-Process "dotnet" -ArgumentList "run --project examples\GuiTest.csproj" -WorkingDirectory "c:\Users\Aleks\Workspace\AoGui"
# Run original example
Start-Process "dotnet" -ArgumentList "run --project examples\TestApp.csproj" -WorkingDirectory "c:\Users\Aleks\Workspace\AoGui"
Or build and run the executable directly:
dotnet build examples/GuiTest.csproj
.\examples\bin\Debug\net8.0-windows\GuiTest.exe
Project Structure
AoGui/
├── src/
│ ├── Core/
│ │ ├── Vector2.cs # 2D vector structure
│ │ ├── Color.cs # Color structure with presets
│ │ └── UIElement.cs # Base class for all UI elements
│ ├── Controls/
│ │ ├── Button.cs # Button control
│ │ └── Text.cs # Text label control
│ ├── Rendering/
│ │ ├── IRenderer.cs # Renderer interface
│ │ └── GdiRenderer.cs # GDI+ implementation
│ └── Window.cs # Main window class
├── examples/
│ ├── test.cs # Original example
│ └── SyncTest.cs # Property synchronization test
└── AoGui.csproj # Library project file
License
Free to use for any purpose.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0-windows7.0 is compatible. net9.0-windows 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.
-
net8.0-windows7.0
- No dependencies.
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 |
|---|---|---|
| 1.0.0 | 123 | 3/7/2026 |