{"id":18339000,"url":"https://github.com/xoofx/nwindows","last_synced_at":"2025-06-22T02:35:54.713Z","repository":{"id":65382528,"uuid":"584527562","full_name":"xoofx/NWindows","owner":"xoofx","description":"NWindows is a cross-platform window creation and management library for .NET","archived":false,"fork":false,"pushed_at":"2024-03-17T14:20:41.000Z","size":412,"stargazers_count":85,"open_issues_count":8,"forks_count":3,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-05-24T05:18:59.406Z","etag":null,"topics":["dotnet","window-ui","windows"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xoofx.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["xoofx"]}},"created_at":"2023-01-02T20:31:07.000Z","updated_at":"2025-04-13T08:39:39.000Z","dependencies_parsed_at":"2024-03-17T15:41:26.467Z","dependency_job_id":null,"html_url":"https://github.com/xoofx/NWindows","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/xoofx/NWindows","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xoofx%2FNWindows","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xoofx%2FNWindows/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xoofx%2FNWindows/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xoofx%2FNWindows/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xoofx","download_url":"https://codeload.github.com/xoofx/NWindows/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xoofx%2FNWindows/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261225645,"owners_count":23127178,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dotnet","window-ui","windows"],"created_at":"2024-11-05T20:16:10.136Z","updated_at":"2025-06-22T02:35:49.702Z","avatar_url":"https://github.com/xoofx.png","language":"C#","funding_links":["https://github.com/sponsors/xoofx"],"categories":[],"sub_categories":[],"readme":"# NWindows [![Build Status](https://github.com/xoofx/NWindows/workflows/ci/badge.svg?branch=main)](https://github.com/xoofx/NWindows/actions) [![NuGet](https://img.shields.io/nuget/v/NWindows.svg)](https://www.nuget.org/packages/NWindows/)\n\n\u003cimg align=\"right\" width=\"160px\" height=\"160px\" src=\"https://raw.githubusercontent.com/xoofx/NWindows/main/img/NWindows.png\"\u003e\n\nNWindows is a cross-platform window creation and management library for .NET.\n\n\u003e NWindows is aimed to provide all the infrastructure to manipulate a Window in a cross-platform manner and to interact with the input.\n\u003e\n\u003e It is **primarily meant to be used to create higher level applications** (games, multimedia apps) or **UI Frameworks**.\n\u003e\n\u003e NOTICE: The first version is only supporting the Windows 10+ platform. Help wanted for other platforms! 🤗\n\n## Features\n\n- Very **lightweight** with **zero-dependencies** `.NET 7+` library.\n- **GC friendly** (Zero allocation for the events).\n- **NativeAOT/trimmable library** (including the \"reflection free mode\")\n  - You can create a small app under 1.5 MB.\n- Create **top-level** and **popup windows**.\n  - Support for **border-less** windows.\n  - Support for OS **theme** sync.\n- **Input support**: keyboard, mouse + cursor, text.\n- **DPI aware** and sync with OS changes.\n- **Clipboard** and **Drag\u0026Drop** support.\n- **FullScreen** mode support.\n- **Many modifiable properties with events**\n  - Size, position, visibility, maximize/minimum size, icon, resize-able, minimize-able, maximize-able, top-most, opacity, modal...\n- **Screen** properties.\n- **Dispatcher threading infrastructure** built-in to handle System and Window messages (similar to WPF Dispatcher)\n- **Timer** support\n## Getting started\n\n```c#\nusing NWindows;\nusing NWindows.Threading;\nusing System.Drawing;\n\nvar mainWindow = Window.Create(new()\n{\n    Title = \"Hello World\",\n    StartPosition = WindowStartPosition.CenterScreen,\n    BackgroundColor = WindowSettings.Theme == WindowTheme.Light\n        ? Color.FromArgb(245, 245, 245)\n        : Color.FromArgb(30, 30, 30)\n});\n\nDispatcher.Current.Run();\n```\n\nwill create the following window on Windows:\n\n![](img/NWindows-HelloWorld.png)\n\nYou will find more examples in the [sample folder](samples/readme.md).\n\n## Install\n\nNWindows is provided as a [NuGet package](https://www.nuget.org/packages/NWindows/).\n\n## User Guide\n\nFor more details on how to use NWindows, please visit the [user guide](https://github.com/xoofx/NWindows/blob/main/doc/readme.md).\n\n## License\n\nThis software is released under the [BSD-2-Clause license](https://opensource.org/licenses/BSD-2-Clause). \n\n## Credits\n\nNWindows is using the following libraries:\n\n- The fantastic [TerraFX.Interop.Windows](https://github.com/terrafx/terrafx.interop.windows) for the interop layer with Windows API. \n  \u003e This library is integrated with a [custom codegen Roslyn tool](src/NWindows.Terrafx.Interop.CodeGen/Program.cs) that will copy all the transitive usage of TerraFX and internalize them into this repository to avoid the the whole TerraFX library to be visible to NWindows's users.\n  \u003e \n  \u003e In the end, this copy is only adding 45KB of .NET code to NWindows instead of the 15MB dependency of the whole TerraFX library.\n\n## Author\n\nAlexandre Mutel aka [xoofx](https://xoofx.github.io).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxoofx%2Fnwindows","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxoofx%2Fnwindows","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxoofx%2Fnwindows/lists"}