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" />
                    
Directory.Packages.props
<PackageReference Include="AoGui" />
                    
Project file
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
                    
#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
                    
Install as a Cake Addin
#tool nuget:?package=AoGui&version=1.0.0
                    
Install as a Cake Tool

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 text
  • FontSize - Text size
  • TextColor - Text color
  • Color - Background color
  • IsClicked() - Returns true when clicked
  • IsPressed() - Returns true while mouse is down
  • IsReleased() - Returns true when mouse is released
  • IsHovered() - Returns true when mouse is over button

Text

  • Content - Text to display
  • FontSize - Text size
  • Color - Text color

Window

  • Add(UIElement) - Add control to window
  • IsRunning() - Check if window is still open
  • UpdateAndRender() - 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 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