SignalNotNoise.UI
0.1.0-alpha.3
dotnet add package SignalNotNoise.UI --version 0.1.0-alpha.3
NuGet\Install-Package SignalNotNoise.UI -Version 0.1.0-alpha.3
<PackageReference Include="SignalNotNoise.UI" Version="0.1.0-alpha.3" />
<PackageVersion Include="SignalNotNoise.UI" Version="0.1.0-alpha.3" />
<PackageReference Include="SignalNotNoise.UI" />
paket add SignalNotNoise.UI --version 0.1.0-alpha.3
#r "nuget: SignalNotNoise.UI, 0.1.0-alpha.3"
#:package SignalNotNoise.UI@0.1.0-alpha.3
#addin nuget:?package=SignalNotNoise.UI&version=0.1.0-alpha.3&prerelease
#tool nuget:?package=SignalNotNoise.UI&version=0.1.0-alpha.3&prerelease
SignalNotNoise.UI
Experimental SwiftUI-inspired UI components in C#. Requires .NET 10; the WPF renderer requires Windows. APIs may change without compatibility guarantees.
SignalNotNoise.UI: platform-independent view descriptions, components, state, and bindings.SignalNotNoise.UI.Wpf: WPF renderer andViewHost; automatically references the core package.
Get started
In a .NET 10 WPF application, install the preview:
dotnet add package SignalNotNoise.UI.Wpf --version 0.1.0-alpha.3
In your WPF window constructor, after InitializeComponent():
var count = new UI_Framework.State<int>(0);
var host = new UI_Framework.Wpf.ViewHost(() => UI_Framework.UI.VStack(
UI_Framework.UI.Text($"Count: {count.Value}").FontSize(24),
UI_Framework.UI.Button("Increment", () => count.Value++)
).Spacing(12).Padding(20));
Content = host;
Closed += (_, _) => host.Dispose();
Create and access state on the UI thread. State reads during view builds become subscriptions; updates are batched. Dispose the host when its window closes. Use stable .Id(...) keys for dynamic sibling components.
For applications with substantial WPF text editing, install one cleanup owner before constructing controls and close it after disposing windows and native hosts:
var app = new Application();
using var cleanup = new UI_Framework.Wpf.WpfComCleanupPolicy(
app.Dispatcher, error => Trace.WriteLine(error));
app.Run(window);
The policy changes CLR COM-wrapper cleanup for the lifetime of that STA and cannot restore eager cleanup. The application owns failure reporting and shutdown ordering.
Preview limitations
This is an evaluation release, not a production SwiftUI replacement. Visible-window focus/IME and accessibility behavior still need validation. Rendering is not transactional, some large list shuffles have quadratic cost, and non-Windows renderers are not available.
See the source and examples, documentation, and issue tracker. Licensed under MIT.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on SignalNotNoise.UI:
| Package | Downloads |
|---|---|
|
SignalNotNoise.UI.Wpf
Experimental WPF host and renderer for SignalNotNoise.UI declarative C# components. Requires Windows and .NET 10. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-alpha.3 | 53 | 9/26/2026 |
| 0.1.0-alpha.2 | 54 | 9/21/2026 |
| 0.1.0-alpha.1 | 58 | 9/18/2026 |