URL: https://www.github.com/ethanmoffat/XNAControls


While developing EndlessClient, a pattern naturally emerged while working with XNA/MonoGame that relied on the use of individual game components to represent UI elements such as buttons, textboxes, labels, etc. Splitting up the game rendering logic into individual components made a lot of sense to develop individual, reusable pieces of UI code.

Project Goals

XNAControls serves to provide a UI library for EndlessClient (or other MonoGame-based games). Individual components handle their own input and events. Creating and using controls should be easy and sensible. Dialogs should work similar to how they do in Windows, with only the topmost dialog handling input/events.

This library is packaged and distributed via nuget.org. It is supported on Windows, Linux, and macOS operating systems.


Controls are built up entirely in code with no declarative syntax. This requires a lot of trial and error, but developing a declarative UI language is not part of the goal of this project.