Iciclecreek.Avalonia.Controls 2.3.1

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

Icon

Iciclecreek.Avalonia.Controls

This is a package of UI controls for Avalonia UI.

  • ColumnsPanel - A panel which lays out arranges children into dynamic columns
  • TextHighlighter - A TextBlock control that highlights text based on regex patterns
  • TextBlockSpinner - A text-based loading/busy spinner control
  • BigTextBlockSpinner - A large text-based loading/busy spinner control
  • AnimatedText - Attached properties for animating text in a TextBlock

Installation

Add the Iciclecreek.Avalonia.Controls package to your project

Update your xmlns

	xmlns:ice="using:Iciclecreek.Avalonia.Controls"

ColumnsPanel Control

ColumnsPanel The ColumnsPanel control is a panel which dynamically lays out its children in left-to right order into columns.

There are 2 modes of usage:

  • Dynamic Columns - The ColumnWidth property defines the width of every column, and the number of columns is dynamically set to the number of columns which fit the width of the control. The MinColumns and MaxColumns properties can be used to control the number of columns.
  • Static Columns - The ColumnDefinitions property defines column definitions (ex: '*, 2*, 500') The number of columns is determined by the number of column definitions. MinColumns, MaxColumns are ignored.

Usage

<ice:ColumnsPanel ColumnWidth="100">
	<TextBlock Text="Column 1" />
	<TextBlock Text="Column 2" />
	<TextBlock Text="Column 3" />
    ...
</ice:ColumnsPanel>

Example of a columns panel in a items control

<ItemsControl Items="{Binding Items}">
	<ItemsControl.ItemsPanel>
		<ItemsPanelTemplate>
			<ice:ColumnsPanel ColumnWidth="300" />
		</ItemsPanelTemplate>
	</ItemsControl.ItemsPanel>
	<ItemsControl.ItemTemplate>
		<DataTemplate>
			<Image Source="{Binding Source}" />
		</DataTemplate>
	</ItemsControl.ItemTemplate>
</ItemsControl>

Properties

Property Default Description
ColumnWidth 300 The width of each column.
MinColumns 1 The minimum number of columns. If ColumnWidth*MinColumns is not possible the column width will scale to fit.
MaxColumns Int.MaxValue The maximum number of columns.
Gap 0 The vertical gap between each item in a column
ColumnGap 0 The horizontal gap between each column
ColumnDefinitions null A ColumnDefinitions string like '300,2*,*' which can be used to specify the width of each column. When ColumnDefinitions is set ColumnWidth, MinColumns, MaxColumns are ignored.

AnimatedText attached proeprties

AnimatedText defines attached properties which can be used to animate text in a TextBlock.

Usage

<TextBlock 
	Text="My content" 
	ice:AnimatedText.IsActive="{Binding ...}" 
	ice:AnimatedText.AnimationType="Dots" />

Properties

Property Default Description
IsActive true/false When it's active it's visible and animating
AnimationType enum name of animationtype
Delay TimeSpan delay between animation frames
Frames string[] Custom array of strings to use as frames for the animation or comman delimited list of frames

TextBlockSpinner Control

The TextBlockSpinner control is a loading/busy spinner which uses Text characters to create the spinner. It is effectively the same as a TextBlock with the AnimatedText attached properties set. spinners

Usage

<ice:TextBlockSpinner AnimationType="Arcs" IsActive="{Binding ...}" />

Properties

Property Default Description
IsActive true/false When it's active it's visible and animating
AnimationType enum name of animationtype

BigTextBlockSpinner Control

The BigTextBlockSpinner control is a loading/busy spinner which uses Text characters to create the spinner but it can be arbitrary large. bigspinner

Usage

<ice:BigTextBlockSpinner AnimationType="Dots" Rows="5" Columns="5" IsActive="{Binding ...}" />
Property Default Description
IsActive true/false When it's active it's visible and animating
Rows number defines number of characters in height
Columns number defines number of characters in width
Length number defines how "long" the tail is in characters
AnimationChar char char to use to render the animation

TextHighlighter Control

The TextHighlighter control is a TextBlock control that highlights text based on regex patterns.

<img width="855" height="47" alt="image" src="https://github.com/user-attachments/assets/8aabf173-8723-4df7-9236-e0344d9647ab" />

Properties

Property Description
Highlighters Collection of Highlighter objects that define highlighting rules
Text The text to display and highlight (inherited from TextBlock)

Highlighter Properties

Property Description
Pattern Regular expression pattern to match text for highlighting
Foreground Brush for the text color of highlighted text
Background Brush for the background color of highlighted text
FontWeight Font weight (Normal, Bold, etc.) for highlighted text
FontStyle Font style (Normal, Italic, etc.) for highlighted text
TextDecorations Text decorations (Underline, Strikethrough, etc.) for highlighted text
HightlightAll Applies highlighting to entire text instead of the pattern

Note: When multiple highlighters match overlapping text, the first highlighter in the collection takes precedence.

Usage

<Window.Resources>
	<ice:HighlighterCollection x:Key="MyHighlighters" >
		
		<ice:Highlighter Pattern="numbers.*?emails"
							Background="DarkBlue" />

		
		<ice:Highlighter Pattern="\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b"
							Foreground="Black"
							Background="LightYellow"
							TextDecorations="Underline" />

		
		<ice:Highlighter Pattern="\d+"
							Foreground="Red"
							FontWeight="Bold" />

		
		<ice:Highlighter Pattern="\btest\b"
							TextDecorations="Underline" />
	</ice:HighlighterCollection>
</Window.Resources>

<ice:TextHighlighter Text="This is some sample text to highlight keywords like Avalonia and C#" 
	Highlighters={StaticResource MyHighlighters}"/>
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  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
2.3.1 220 10/17/2025
2.3.0 246 10/16/2025
2.2.0 194 10/10/2025
2.1.1 244 12/4/2024
2.1.0 236 12/4/2024
2.0.0 353 11/30/2023
1.0.0 241 11/19/2023