Xtreme.Components.Primitives 0.1.0-preview.4

This is a prerelease version of Xtreme.Components.Primitives.
dotnet add package Xtreme.Components.Primitives --version 0.1.0-preview.4
                    
NuGet\Install-Package Xtreme.Components.Primitives -Version 0.1.0-preview.4
                    
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="Xtreme.Components.Primitives" Version="0.1.0-preview.4" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Xtreme.Components.Primitives" Version="0.1.0-preview.4" />
                    
Directory.Packages.props
<PackageReference Include="Xtreme.Components.Primitives" />
                    
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 Xtreme.Components.Primitives --version 0.1.0-preview.4
                    
#r "nuget: Xtreme.Components.Primitives, 0.1.0-preview.4"
                    
#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 Xtreme.Components.Primitives@0.1.0-preview.4
                    
#: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=Xtreme.Components.Primitives&version=0.1.0-preview.4&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Xtreme.Components.Primitives&version=0.1.0-preview.4&prerelease
                    
Install as a Cake Tool

Xtreme.Components.Primitives

Small, app-agnostic Uno Platform controls built from WinUI primitives only. Part of Xtreme.Components; no third-party packages.

Full guide: docs/primitives.md covers every option with samples.

Control What it does
MaskedTextBox + InputMask Hand-rolled masked input that works on every Uno head: # is a digit slot, A a letter, * a letter or digit, \ escapes the next character, anything else is a literal (phone (###) ###-####, Canadian postal code A#A #A#). Optional CharacterCasing. The toolkit's TextBoxExtensions.Mask throws per keystroke on Uno; this does not.
TypeableTimeBox A time field you can type into (9, 930, 930p, 9:30p, 4pm, 21:30, 1603) with TryParseTime exposed.
CompactCalendarDatePicker CalendarDatePicker sized for dense forms.
MonthYearPicker Month and year chooser; the value is always the 1st of the month. SelectedDateChanged event.
MultiMonthDateNavigator Two-click date-range picker across several months, as used by the Scheduler toolbar. Keyboard navigable; first day of week from the culture.
PagingControl Page size, page number and first/prev/next/last navigation, with an "All" size and single-page hiding. Responsive at three widths (LayoutMode, ShownLayout); CurrentPageChanged / PageSizeChanged events.
ColumnFlowPanel Places each child in whichever of its N equal columns is currently shortest (masonry-style).
WrapPanel Horizontal wrap with uniform spacing.
ExpanderClipFix Attached helper that stops an Expander's content bleeding outside its bounds while animating.
ToastControl Transient bottom toast with icon, fade in and out.
EditorActionBar The Delete / Save / Cancel bar for editors: trash on the left, accent Save and secondary Cancel on the right, Save gated on IsDirty.
CopyButton Copy-to-clipboard button with a "Copied" confirmation.
DateTimePicker Date and time in one field: multi-month calendar flyout plus a typeable time slot list.
CriteriaPanel A titled group of labelled fields whose label column auto-sizes, for search criteria forms. FieldValueChanged reports edits in any field.
ChipPickerControl + ChipPickerDialog Multi-select chips on a button that opens a grouped picker dialog; optional "everything except" exclusions. Items are ChipItem records.
OverlayGlyphIcon A Fluent glyph (or an app-supplied vector) with a small accent badge glyph overlaid bottom-right.

Host hooks (optional)

Xtreme.Components.Core.ComponentHost carries two optional hooks an app can set at startup:

ComponentHost.CurrentTheme = () => rootElement.ActualTheme;          // live theme switching
ComponentHost.ResolveGeometry = key => MyIcons.TryGet(key);          // OverlayGlyphIcon.BackGeometryKey

Without them, code-built dialogs follow Application.RequestedTheme and vector icon keys resolve to nothing.

Quick start

<Page xmlns:xc="using:Xtreme.Components.Primitives">
  <StackPanel Spacing="8">
    <xc:MaskedTextBox Mask="(###) ###-####" Header="Phone" />
    <xc:TypeableTimeBox Time="{x:Bind Model.Start, Mode=TwoWay}" />
    <xc:PagingControl x:Name="Pager" PageSize="25" TotalItemCount="{x:Bind Items.Count, Mode=OneWay}" />
    <xc:EditorActionBar IsDirty="{x:Bind Model.IsDirty, Mode=OneWay}"
                        SaveRequested="OnSave" CancelRequested="OnCancel" DeleteRequested="OnDelete" />
  </StackPanel>
</Page>

Theming

Font sizes read the XcFontSizeBody and XcFontSizeCaption resources. Define them in App.xaml to match your type ramp; a bare app can start with:

<x:Double x:Key="XcFontSizeBody">14</x:Double>
<x:Double x:Key="XcFontSizeCaption">12</x:Double>
<x:Double x:Key="XcFontSizeTitle">16</x:Double>

The package dictionary also defines theme-keyed brushes you can override: XcExcludedBrush (the chip picker's NOT marks), XcChipBackgroundBrush and XcChipForegroundBrush (pills for a ChipItem with no colors of its own).

Targets net10.0 only; the consuming Uno head supplies the renderer. MIT license.

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 (2)

Showing the top 2 NuGet packages that depend on Xtreme.Components.Primitives:

Package Downloads
Xtreme.Components.Scheduler

Primitive-only Uno Platform scheduler: Day, Week, Month, Agenda and multi-resource Planner views; drag-to-move and resize, click-to-create, external drag-drop, per-resource IANA time zones, recurring-event indicators and templatable appointments. No WebView, no third-party license.

Xtreme.Components

Every Xtreme.Components family in one reference: Core, Primitives, Scheduler, Docking, Cards and TableView. App-agnostic, primitive-only Uno Platform controls for Desktop, Android, iOS and WebAssembly.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.0-preview.4 94 10/15/2026
0.1.0-preview.3 66 10/14/2026
0.1.0-preview.2 68 10/14/2026
0.1.0-preview.1 59 10/14/2026