Jalium.UI.Build 26.9.7

There is a newer version of this package available.
See the version list below for details.
dotnet add package Jalium.UI.Build --version 26.9.7
                    
NuGet\Install-Package Jalium.UI.Build -Version 26.9.7
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Jalium.UI.Build" Version="26.9.7">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Jalium.UI.Build" Version="26.9.7" />
                    
Directory.Packages.props
<PackageReference Include="Jalium.UI.Build">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Jalium.UI.Build --version 26.9.7
                    
#r "nuget: Jalium.UI.Build, 26.9.7"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Jalium.UI.Build@26.9.7
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Jalium.UI.Build&version=26.9.7
                    
Install as a Cake Addin
#tool nuget:?package=Jalium.UI.Build&version=26.9.7
                    
Install as a Cake Tool

Jalium.UI

Jalium.UI is a Windows-first, GPU-accelerated UI framework for .NET 10. It combines a WPF-style object model, JALXAML markup, and a DirectX 12 renderer.

This repository contains the full framework stack: managed UI layers, native rendering backends, build-time tooling, packaging projects, and tests.

Project Status

  • Active development (APIs can still evolve between minor versions)
  • Primary target: Windows 10/11 x64
  • Runtime target: .NET 10 (net10.0-windows)
  • Rendering backend: DirectX 12

Why Jalium.UI

  • GPU-native rendering pipeline with native backend integration
  • Familiar UI programming model (DependencyObject, UIElement, panels, templates, resources)
  • JALXAML markup and runtime parser (Jalium.UI.Markup.XamlReader)
  • Build-time tooling via NuGet (Jalium.UI.Build, Jalium.UI.Xaml.SourceGenerator)
  • Broad control surface including layout, text/input, navigation, data, docking, ink, and web host controls

Framework Composition

Managed Packages

Package Responsibility
Jalium.UI.Core dependency property system, visual tree, layout core, routed events, binding foundations
Jalium.UI.Media brushes, geometry, drawing primitives, animation/media infrastructure
Jalium.UI.Input mouse/keyboard/touch/stylus input abstractions and routing
Jalium.UI.Interop managed/native bridge and runtime native dependency packaging
Jalium.UI.Gpu GPU-side managed resource and render infrastructure
Jalium.UI.Controls controls, panels, templates, windowing, themes
Jalium.UI.Xaml JALXAML parse/load pipeline and markup services
Jalium.UI.Build MSBuild tasks and build assets for JALXAML workflow
Jalium.UI.Xaml.SourceGenerator Roslyn source generator for XAML/code-behind integration
Jalium.UI metapackage that references the full framework stack

Native Modules

Module Responsibility
jalium.native.core native core runtime layer
jalium.native.d3d12 DirectX 12 render target/backend
jalium.native.browser browser/WebView native integration layer

Capability Overview

Layout and Visual Tree

  • Core panels: Grid, StackPanel, Canvas, DockPanel, WrapPanel, UniformGrid
  • Virtualization and presenters: VirtualizingStackPanel, DataGrid presenters/panels, tab/tool panels
  • Window-level layout host, overlay layer, title bar composition, chrome integration

Controls

  • Inputs: Button, TextBox, PasswordBox, NumberBox, AutoCompleteBox, ComboBox, Slider
  • Data/navigation: TreeView, NavigationView, TabControl, DataGrid, menu/flyout family
  • Rich scenarios: InkCanvas, DocumentViewer, WebView/WebBrowser, TitleBar, docking components

Input Pipeline

  • Pointer and keyboard routing
  • Touch and stylus pathways with plugin-style stylus infrastructure
  • Scroll and manipulation related control behaviors

Markup and Tooling

  • Runtime parsing: Jalium.UI.Markup.XamlReader
  • Build integration through packaged MSBuild targets/tasks
  • Source-generator package for compile-time assistance in JALXAML workflows

Razor Syntax In JALXAML

JALXAML supports Razor-style syntax as additive sugar on top of existing {Binding ...}:

  • @Path
  • @(expr)
  • @{ ... }
  • mixed text templates (for string/object targets)
  • @if(expr){<Element />} block directives
  • escapes: @@ and \@

Binding source resolution is DataContext first, then code-behind fallback.

Update behavior:

  • Observable source (INotifyPropertyChanged / dependency property): real-time updates.
  • Non-observable CLR source: one-time evaluation at load.

For syntax details and rules, see docs/razor-syntax.md.

Installation

dotnet add package Jalium.UI

Granular install (advanced)

dotnet add package Jalium.UI.Core
dotnet add package Jalium.UI.Media
dotnet add package Jalium.UI.Input
dotnet add package Jalium.UI.Interop
dotnet add package Jalium.UI.Gpu
dotnet add package Jalium.UI.Controls
dotnet add package Jalium.UI.Xaml
dotnet add package Jalium.UI.Build
dotnet add package Jalium.UI.Xaml.SourceGenerator

Quick Start (C#)

using Jalium.UI.Controls;

var app = new Application();

var window = new Window
{
    Title = "Hello Jalium.UI",
    Width = 960,
    Height = 640,
    Content = new StackPanel
    {
        Margin = new Thickness(24),
        Children =
        {
            new TextBlock { Text = "Jalium.UI", FontSize = 28 },
            new TextBlock { Text = "GPU-accelerated .NET UI framework", Margin = new Thickness(0, 8, 0, 16) },
            new Button { Content = "Start" }
        }
    }
};

app.Run(window);

Quick Start (JALXAML runtime parse)

using Jalium.UI.Controls;
using Jalium.UI.Markup;

var app = new Application();

var xaml = """
<Window xmlns="https://jalium.dev/ui" Title="JALXAML Window" Width="800" Height="500">
  <Grid>
    <StackPanel Margin="20">
      <TextBlock Text="Hello from JALXAML" FontSize="24"/>
      <Button Content="Click" Margin="0,12,0,0"/>
    </StackPanel>
  </Grid>
</Window>
""";

var window = (Window)XamlReader.Parse(xaml);
app.Run(window);

Build From Source

# Build the framework (through metapackage dependency graph)
dotnet build src/packaging/Jalium.UI.csproj -c Release

# Run tests
dotnet test tests/Jalium.UI.Tests/Jalium.UI.Tests.csproj -c Release

NuGet Packaging

# Pack metapackage + referenced packable projects
dotnet pack src/packaging/Jalium.UI.csproj -c Release -o artifacts/nuget

For per-project package output, run dotnet pack on each packable project under src/managed/Jalium.UI.* and src/packaging.

Repository Layout

Jalium.UI/
  src/
    managed/
      Jalium.UI/
      Jalium.UI.Core/
      Jalium.UI.Media/
      Jalium.UI.Input/
      Jalium.UI.Interop/
      Jalium.UI.Gpu/
      Jalium.UI.Controls/
      Jalium.UI.Xaml/
      Jalium.UI.Build/
      Jalium.UI.Xaml.SourceGenerator/
      Jalium.UI.Compiler/
    native/
      jalium.native.core/
      jalium.native.d3d12/
      jalium.native.browser/
    packaging/
      Jalium.UI.csproj
  tests/
    Jalium.UI.Tests/

Visual Studio Extension Notes

The VSIX can be installed into either:

  • Normal instance: %LOCALAPPDATA%\\Microsoft\\VisualStudio\\18.0_<instanceId>\\Extensions
  • Experimental instance (/rootsuffix Exp): %LOCALAPPDATA%\\Microsoft\\VisualStudio\\18.0_<instanceId>Exp\\Extensions

If .jalxaml IntelliSense only shows raw XML suggestions, verify the extension is installed in the same instance you are using.

Compatibility Notes

  • Jalium.UI is not positioned as a drop-in WPF replacement yet.
  • API names and behavior are intentionally close to familiar WPF concepts in many areas, but differences exist.
  • Keep package versions aligned across all Jalium.UI.* packages.

Contributing

Issues and pull requests are welcome. For large changes, include:

  • motivation and design summary
  • behavioral impact/risk
  • validation steps (tests or manual verification)

Community

For discussions, questions, or community support, you can join the QQ group:

QQ: 1079778999

License

MIT. See LICENSE.

There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on Jalium.UI.Build:

Package Downloads
Jalium.UI

Jalium.UI is a modern GPU-accelerated UI framework for .NET. This metapackage includes all Jalium.UI components.

Jalium.UI.Desktop

Jalium.UI Windows Desktop integration package. References all Jalium.UI components built for Windows and adds Windows-only platform glue (system accent color sync, etc.).

Jalium.UI.Android

Jalium.UI Android entry package. References all Jalium.UI components built for Android, including native .so libraries.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
26.10.3 107 5/4/2026
26.10.2 110 4/27/2026
26.10.1 114 4/22/2026
26.10.1-preview.3 56 4/18/2026
26.10.1-preview.2 51 4/18/2026
26.10.1-preview.1 51 4/17/2026
26.10.0 104 4/16/2026
26.10.0-preview.4 53 4/7/2026
26.10.0-preview.3 51 4/7/2026
26.10.0-preview.2 51 4/7/2026
26.10.0-preview.1 52 4/7/2026
26.10.0-preview 95 4/7/2026
26.9.10 111 3/31/2026
26.9.9 103 3/31/2026
26.9.8 105 3/30/2026
26.9.7 100 3/30/2026
26.9.6 114 3/27/2026
26.9.5 101 3/26/2026
26.9.4 103 3/25/2026
26.9.3 99 3/24/2026
Loading failed