NXUI (nex-ui), next-gen UI - Create minimal Avalonia applications using C# 10 and .NET 6 and 7
Перейти к файлу
Wiesław Šoltés db12993f99 Update to 11.2 2024-10-31 11:53:01 +01:00
.github
samples
src Update to 11.2 2024-10-31 11:53:01 +01:00
.editorconfig
.gitattributes
.gitignore
Directory.Build.props Update to 11.2 2024-10-31 11:53:01 +01:00
LICENSE.md
NXUI.sln
NuGet.Config
README.md Update README.md 2024-10-28 10:18:34 +01:00
global.json

README.md

NXUI (next-gen UI)

NuGet NuGet

Creating minimal Avalonia next generation (NXUI, next-gen UI) application using C# 10 and .NET 8

https://user-images.githubusercontent.com/2297442/132313187-32f18c4b-e894-46db-9a9d-9de02f30835e.mp4

Requisites

NXUI

<PackageReference Include="NXUI" Version="11.1.0" />

or for F# support:

<PackageReference Include="NXUI.FSharp" Version="11.1.0" />

Additionally, depending on the application type:

Desktop

For Desktop extensions:

<PackageReference Include="NXUI.Desktop" Version="11.1.0" />

or using plain Avalonia:

<PackageReference Include="Avalonia.Desktop" Version="11.1.0" />

Browser

<PackageReference Include="Avalonia.Browser" Version="11.0.0" />
dotnet workload install wasm-tools

Usage

Window Build() => Window().Content(Label().Content("NXUI"));

AppBuilder.Configure<Application>()
  .UsePlatformDetect()
  .UseFluentTheme()
  .StartWithClassicDesktopLifetime(Build, args);
var count = 0;

Window Build()
  => Window(out var window)
    .Title("NXUI").Width(400).Height(300)
    .Content(
      StackPanel()
        .Children(
          Button(out var button)
            .Content("Welcome to Avalonia, please click me!"),
          TextBox(out var tb1)
            .Text("NXUI"),
          TextBox()
            .Text(window.BindTitle()),
          Label()
            .Content(button.ObserveOnClick().Select(_ => ++count).Select(x => $"You clicked {x} times."))))
    .Title(tb1.ObserveText().Select(x => x?.ToUpper()));

AppBuilder.Configure<Application>()
  .UsePlatformDetect()
  .UseFluentTheme()
  .WithApplicationName("NXUI")
  .StartWithClassicDesktopLifetime(Build, args);

Minimalistic Desktop app:

Run(
  () => Window().Content(Label().Content("NXUI")), 
  "NXUI", 
  args, 
  ThemeVariant.Dark);

Generate

C#

cd src/Generator
dotnet run -- ../NXUI/Generated

F#

cd src/Generator
dotnet run -- ../NXUI.FSharp/Generated -fsharp