This is a project template combining Avalonia, Avalonia.Dock, and MonoGame, designed to create a modern, cross-platform application with a docking UI and game rendering capabilities. The template allows seamless integration between Avalonia's UI framework and MonoGame's rendering engine.
⚠ Disclaimer: This project is a first draft and is provided as-is. I am not responsible for its functionality or stability.
- 🎨 Avalonia UI – Cross-platform UI framework for .NET applications.
- 🔲 Avalonia.Dock – Docking system for multi-window or modular interfaces.
- 🎮 MonoGame – Game development framework for 2D/3D rendering.
- 🏗 Modular & Extensible – Easily customizable for different use cases.
- 🖥 Cross-Platform – Runs on Windows, Linux, and macOS.
Ensure you have the following installed:
- .NET SDK 9+
- MonoGame Framework
- (Optional) Visual Studio 2022+ or JetBrains Rider
# Clone this repository
git clone https://github.com/vilten/Avalonia-Monogame-Dock-Template
cd "Avalonia-Monogame-Dock-Template\Avalonia Monogame Dock Template"To build and run the project, execute:
# Restore dependencies
dotnet restore
# Build the project
dotnet build
# Run the application
cd bin\Debug\net9.0
dotnet exec MyApp.dll
cd ..\..\..- Avalonia UI: Manages window and controls layout.
- Avalonia.Dock: Enables docking panels.
- MonoGame Renderer: Used for real-time graphics and rendering inside Avalonia.
📦 YourProject
├── 📂 Assets # Icons, textures, and other assets
├── 📂 Content # Monogame content .mgcb
├── 📂 Controls # Avalonia controls
├── 📂 Monogame # Monogame code
├── 📂 Services # Various services
├── 📂 Styles # Avalonia styles
├── 📂 Themes # Avalonia themes
├── 📂 Views # UI Views (Avalonia)
├── 📂 ViewModels # ViewModels for MVVM pattern
├── 📂 Game # MonoGame-related logic
├── App.axaml # Avalonia Application Entry Point
├── Settings.cs # Application settings
├── Program.cs # Application startup
└── README.md # Project Documentation
If you want to contribute:
- Fork the repo
- Create a feature branch (
git checkout -b feature-name) - Commit changes (
git commit -m 'Add new feature') - Push to branch (
git push origin feature-name) - Open a Pull Request
This project is licensed under the MIT License.
Created by [Viliam Tencer] – GitHub
✨ Happy coding! 🚀
