AngelSix.ThemeEngine.Controls 1.1.0

dotnet add package AngelSix.ThemeEngine.Controls --version 1.1.0
                    
NuGet\Install-Package AngelSix.ThemeEngine.Controls -Version 1.1.0
                    
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="AngelSix.ThemeEngine.Controls" Version="1.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="AngelSix.ThemeEngine.Controls" Version="1.1.0" />
                    
Directory.Packages.props
<PackageReference Include="AngelSix.ThemeEngine.Controls" />
                    
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 AngelSix.ThemeEngine.Controls --version 1.1.0
                    
#r "nuget: AngelSix.ThemeEngine.Controls, 1.1.0"
                    
#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 AngelSix.ThemeEngine.Controls@1.1.0
                    
#: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=AngelSix.ThemeEngine.Controls&version=1.1.0
                    
Install as a Cake Addin
#tool nuget:?package=AngelSix.ThemeEngine.Controls&version=1.1.0
                    
Install as a Cake Tool

AngelSix.ThemeEngine.Controls

Avalonia controls that ship as types only — no styling of their own. Appearance is deliberately left to the consuming theme, exactly the way first-party Avalonia controls work: the types live in the framework, and the look arrives from whichever theme package you install.

Currently shipping:

  • CalendarView — a single-control calendar replacing Avalonia's five-part built-in family (Calendar, CalendarItem, CalendarDayButton, CalendarButton, CalendarDatePicker). Inline month view with month/year/decade zoom, single or range selection with a hover preview band, event-dot markers, full keyboard navigation, and an optional picker presentation (text box + popup) driven by the same control.
  • CalendarSelectionEngine — the pure selection/layout logic behind CalendarView (range state machine, month-grid date maths, header text), kept free of any UI type so it can be unit-tested.

Install

dotnet add package AngelSix.ThemeEngine.Controls

Then reference the namespace in your XAML:

<Window xmlns="https://github.com/avaloniaui"
        xmlns:controls="using:AngelSix.ThemeEngine.Controls">
    <controls:CalendarView />
    <controls:CalendarView SelectionMode="Range" />
    <controls:CalendarView DisplayAsPicker="True" />
</Window>

Styling

The control paints nothing itself. Every visual detail reaches it through pseudo-classes (:today, :selected, :inactive, :blackout, :range-start, :range-end, :in-range, :preview, :day-focused, plus :picker, :open, :year, :decade on the calendar) and templated parts (PART_HeaderButton, PART_PreviousButton, PART_NextButton, PART_DayTitles, PART_MonthGrid, PART_ZoomGrid, PART_TextBox, PART_PickerButton, PART_Popup), so a theme styles it with an ordinary <ControlTheme TargetType="CalendarView"> — the same shape used for every stock Avalonia control. See Avalonia.Themes.Prototype/Controls/CalendarView.axaml in the youtube repo for a complete worked example.

Without a theme providing a ControlTheme for it, the control renders unstyled — the same contract as a stock Avalonia control before you install Fluent or Simple.

Why types-only?

Keeping the look out of this package means themes stay the sole owners of appearance, and absorbing these controls into the framework later is dropping a package reference rather than untangling duplicated styling.

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.0 96 9/17/2026
1.0.0 110 9/5/2026