NWindows 0.1.0
dotnet add package NWindows --version 0.1.0
NuGet\Install-Package NWindows -Version 0.1.0
<PackageReference Include="NWindows" Version="0.1.0" />
paket add NWindows --version 0.1.0
#r "nuget: NWindows, 0.1.0"
// Install NWindows as a Cake Addin #addin nuget:?package=NWindows&version=0.1.0 // Install NWindows as a Cake Tool #tool nuget:?package=NWindows&version=0.1.0
NWindows
<img align="right" width="160px" height="160px" src="https://raw.githubusercontent.com/xoofx/NWindows/main/img/NWindows.png">
NWindows is a cross-platform window creation and management library for .NET.
NWindows is aimed to provide all the infrastructure to manipulate a Window in a cross-platform manner and to interact with the input.
It is primarily meant to be used to create higher level applications (games, multimedia apps) or UI Frameworks.
NOTICE: The first version is only supporting the Windows 10+ platform. Help wanted for other platforms! 🤗
Features
- Very lightweight with zero-dependencies
.NET 7+
library. - GC friendly (Zero allocation for the events).
- NativeAOT support (including the "reflection free mode")
- You can create a small app under 1.5 MB.
- Create top-level and popup windows.
- Support for border-less windows.
- Support for OS theme sync.
- Input support: keyboard, mouse + cursor, text.
- DPI aware and sync with OS changes.
- Clipboard and Drag&Drop support.
- FullScreen mode support.
- Many modifiable properties with events
- Size, position, visibility, maximize/minimum size, icon, resize-able, minimize-able, maximize-able, top-most, opacity, modal...
- Screen properties.
- Dispatcher threading infrastructure built-in to handle System and Window messages (similar to WPF Dispatcher)
- Timer support
Getting started
using NWindows;
using NWindows.Threading;
using System.Drawing;
var mainWindow = Window.Create(new()
{
Title = "Hello World",
StartPosition = WindowStartPosition.CenterScreen,
BackgroundColor = WindowSettings.Theme == WindowTheme.Light
? Color.FromArgb(245, 245, 245)
: Color.FromArgb(30, 30, 30)
});
Dispatcher.Current.Run();
will create the following window on Windows:
You will find more examples in the sample folder.
Install
NWindows is provided as a NuGet package.
User Guide
For more details on how to use NWindows, please visit the user guide.
License
This software is released under the BSD-2-Clause license.
Author
Alexandre Mutel aka xoofx.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net7.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 |
---|---|---|
0.1.0 | 351 | 1/20/2023 |