aelyo-softworks / Wice

Windows Interface Composition Engine is a .NET C# UI engine for creating Windows application.
Other
107 stars 5 forks source link
direct2d directcomposition directwrite directx dotnet ui ui-engine windows

# What is it?

Wice

Windows Interface Composition Engine ("Wice") is a .NET UI engine for creating Windows application.

Here are the key points for Wice:

Why does it exist?

But... why Wice?

Status

Wice is still a work in progress. The base system is working quite well but it's not 100% finished.

Please post an issue if you have a problem or a question, using sample reproducible code.

List of projects

.NET Standard & Framework projects:

.NET 6 projects:

✨ NEW 2024 / 05 ! ✨ .NET 8 AOT-friendly projects:

⚠️ Wice AOT doesn't work yet and has been put on pause since C#/WinRT doesn't support AOT yet: https://github.com/microsoft/CsWinRT/discussions/1590 Also the project has lots of warnings, you can just avoid compiling it if you don't want to be bothered by these.

Screenshots

Here are some screenshots of the Samples Gallery app.

Wice has acrylic brush to integrate with background nicely, here over the RTF Textbox visual:

Wice

A useful and extensible Property Grid visual to easily create editor interfaces like settings, etc.:

Wice

You can build a Multi-Windows application:

Wice

You can show Dialog Boxes. They are part of the current window visual so can be clicked through and are centered automatically when the app is resized:

Wice

An SVG image visual:

Wice

You can add Direct2D effects on a visual:

Wice

A mouse-controlled Dock Splitter visual:

Wice

An automatic [Flags] enum to Checkable List Box visual, very useful when combined with the property grid:

Wice

And last but not least, the "snoop"-like feature (press F9 anytime when compiled in DEBUG), that shows all the details of the visuals tree and also allow you to modify values in real-time:

Wice

Note: that sole part uses Winforms (another framework to avoid chicken and egg effect!) but you can remove that piece of code if you don't need it.