Xtreme.Components.Cards 0.1.0-preview.4

This is a prerelease version of Xtreme.Components.Cards.
dotnet add package Xtreme.Components.Cards --version 0.1.0-preview.4
                    
NuGet\Install-Package Xtreme.Components.Cards -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.Cards" 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.Cards" Version="0.1.0-preview.4" />
                    
Directory.Packages.props
<PackageReference Include="Xtreme.Components.Cards" />
                    
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.Cards --version 0.1.0-preview.4
                    
#r "nuget: Xtreme.Components.Cards, 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.Cards@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.Cards&version=0.1.0-preview.4&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Xtreme.Components.Cards&version=0.1.0-preview.4&prerelease
                    
Install as a Cake Tool

Xtreme.Components.Cards

Card controls for Uno Platform. Part of Xtreme.Components.

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

SectionCard

A boxed card for grouping related fields inside an editor or detail pane. It owns the card chrome (fill, themed stroke, soft corner, subtly darker right/bottom edge) so every card matches. Add SectionCardTab children (each with a Header and optional Icon) and the header renders them as a top-pane NavigationView strip; add none and set Body (and optionally Title) for a headerless card. The card stays live after load: tabs can be added or removed, Title and tab headers/icons changed, and SelectedIndex / SelectedTab / SelectionChanged track the selected tab.

<Page xmlns:cards="using:Xtreme.Components.Cards">
  <cards:SectionCard>
    
    <cards:SectionCard.Tabs>
      <cards:SectionCardTab Header="Details">
        <StackPanel> ... </StackPanel>
      </cards:SectionCardTab>
      <cards:SectionCardTab Header="Notes">
        <cards:SectionCardTab.Icon><SymbolIcon Symbol="Comment" /></cards:SectionCardTab.Icon>
        <TextBox AcceptsReturn="True" />
      </cards:SectionCardTab>
    </cards:SectionCard.Tabs>
  </cards:SectionCard>
</Page>

Set HeaderFit="Abbreviate" and the tab headers shorten as the card narrows ("Contact Det..", then icon only), measured against the strip rather than looked up by breakpoint, before any tab moves into the overflow menu. The same rule is public as LabelAbbreviation.Abbreviate.

The title font size reads the XcFontSizeTitle resource (16 in Core's defaults) and falls back to 14 only when no such resource exists.

CardDockerControl

Arranges cards into panels across a column grid by dragging. Cards are ids plus a title and an icon factory, so the control carries no app model; the host supplies the card bodies and persists the resulting layout. Users drag cards between panels, drag whole panels by their top handle, resize panels, and can do the moves from the keyboard (Ctrl+arrows, Delete to set aside). Lowering ColumnCount parks panels in the last column and raising it sends them back. The tray and slot strings and the drag colors are properties.

var docker = new CardDockerControl { ColumnCount = 3 };
docker.Cards = new[]
{
    new CardDockerCard { Id = "address",  Title = "Address",  CreateIcon = () => new SymbolIcon(Symbol.Map) },
    new CardDockerCard { Id = "contacts", Title = "Contacts", CreateIcon = () => new SymbolIcon(Symbol.People) },
};
docker.Layout = savedLayout ?? new CardDockerLayout();      // panels, columns, tray
docker.LayoutChanged += (_, _) => Persist(docker.Layout);   // a user edit changed the layout

Layout is a value: every read returns a copy, and assigning stores a copy. LayoutChanged fires only for user edits that change the arrangement, never for assignments.

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

Showing the top 1 NuGet packages that depend on Xtreme.Components.Cards:

Package Downloads
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 113 10/15/2026
0.1.0-preview.3 54 10/14/2026
0.1.0-preview.2 62 10/14/2026
0.1.0-preview.1 53 10/14/2026