Siticone FadingListView
The SiticoneFadingListView is a specialized scrolling text control designed for displaying logs, credits, server events, or real-time data feeds.
It features smooth scrolling animations, gradient fade effects at the top and bottom edges, and an optimized rendering engine for handling high-frequency updates.
Appearance & Themes
Customize the visual style of the list using the extensive built-in theme library or manual color controls.
| Property | Type | Description & Usage Example |
|---|---|---|
SelectedTheme |
ThemePreset | logView.SelectedTheme = ThemePreset.Matrix; Applies a predefined color scheme. Options include Dark, Light, Matrix, CyberBlue, NeonSunset, and many more. |
FadeColor |
Color | logView.FadeColor = Color.FromArgb(28, 28, 32); The background color that the top and bottom edges fade into. Should match the parent container's background for a seamless effect. |
LineColor |
Color | logView.LineColor = Color.LimeGreen; The color of the text items displayed in the list. |
LineFont |
Font | logView.LineFont = new Font("Consolas", 10f); The font used for rendering text items. |
FadeHeight |
int | logView.FadeHeight = 50; The height in pixels of the fade-out gradient area at the top and bottom of the control. |
Scrolling & Behavior
Configure how items move, loop, and expire within the list.
| Property | Type | Description & Usage Example |
|---|---|---|
Direction |
AnimationDirection |
logView.Direction = AnimationDirection.TowardsTop;
TowardsTop: Items move up (Standard log/credits style). TowardsBottom: Items move down (Matrix rain style). |
ScrollSpeed |
float | logView.ScrollSpeed = 1.5f; The pixel speed of the scrolling animation per tick. Higher values result in faster movement. |
LoopItems |
bool | logView.LoopItems = true; If true, items that scroll off-screen are moved to the back of the queue (infinite loop). If false, they are permanently removed. |
MaxItems |
int | logView.MaxItems = 500; The maximum number of items allowed in the list. Older items are automatically trimmed. |
Performance Tuning
Options for optimizing the control for high-load scenarios.
| Property | Type | Description & Usage Example |
|---|---|---|
UltraFastPerformance |
bool | logView.UltraFastPerformance = true; When enabled, disables individual item opacity animations and simplifies rendering. Essential for scenarios with hundreds of items or very fast scroll speeds. |
Public Methods
// Adds a single text item to the list.
// Safe to call from background threads (automatically invokes if required).
// Automatically starts scrolling if stopped.
siticoneFadingListView1.AddItem("System initialization complete.");
// Clears the current list and adds a collection of new items.
var logs = new List<string> { "Booting...", "Loading Kernel...", "Mounting Drives..." };
siticoneFadingListView1.AddItems(logs);
// Asynchronously loads file paths from a directory and its subdirectories.
// Useful for visualizing file scans or loading large datasets without freezing the UI.
await siticoneFadingListView1.LoadFromPathAsync(@"C:\Windows\System32");
// Starts the scrolling animation manually.
siticoneFadingListView1.StartScrolling();
// Stops the scrolling animation.
siticoneFadingListView1.StopScrolling();
// Removes all items from the list and resets scroll offset.
siticoneFadingListView1.ClearItems();
Events
// Occurs when a new item is added to the list.
view.ItemAdded += (sender, e) => {
Debug.WriteLine($"Added: {e.ItemText}");
};
// Occurs when an item fades out completely or is removed due to MaxItems limit.
view.ItemRemoved += (sender, e) => {
Debug.WriteLine($"Removed: {e.ItemText}");
};
// Occurs when LoadFromPathAsync finishes scanning files.
view.LoadCompleted += (sender, e) => {
MessageBox.Show($"Loaded {e.ItemCount} files successfully.");
};
Enumerations
// Defines visual presets for the control.
public enum ThemePreset
{
Dark,
Light,
Matrix, // Black background, Lime Green text
CyberBlue, // Dark blue background, Cyan text
NeonSunset, // Deep purple background, Pink text
SolarFlare, // Dark brown background, Gold text
CrimsonRed, // Dark red background, Red text
// ... and 25+ more presets
}
Detailed Usage Examples
Example 1: Matrix Code Rain Effect
Creates a digital rain effect by scrolling items downwards with the specific Matrix theme.
private void InitializeMatrixView()
{
var matrixView = siticoneFadingListView1;
// 1. Apply Matrix Visuals
matrixView.SelectedTheme = ThemePreset.Matrix;
matrixView.LineFont = new Font("Consolas", 12f, FontStyle.Bold);
// 2. Configure Downward Flow
matrixView.Direction = AnimationDirection.TowardsBottom;
matrixView.ScrollSpeed = 2.0f;
matrixView.FadeHeight = 100; // Large fade for dramatic effect
// 3. Performance Settings
matrixView.LoopItems = true;
matrixView.MaxItems = 200;
// 4. Populate with random binary/hex data
var rnd = new Random();
for (int i = 0; i < 50; i++)
{
matrixView.AddItem($"0x{rnd.Next(100000, 999999):X} [SYSTEM_FAILURE]");
}
}
Example 2: High-Performance Server Log
Configures the control to act as a real-time console log monitor capable of handling high-speed updates without UI lag.
private void SetupLogMonitor()
{
var logger = siticoneFadingListView1;
// 1. Performance Mode is Critical for logs
logger.UltraFastPerformance = true;
logger.SelectedTheme = ThemePreset.CarbonFiber;
// 2. Logic Settings
logger.Direction = AnimationDirection.TowardsTop;
logger.ScrollSpeed = 1.0f;
logger.LoopItems = false; // Logs shouldn't repeat
logger.MaxItems = 1000; // Keep history deep
// 3. Simulate incoming traffic
var timer = new System.Windows.Forms.Timer { Interval = 100 };
timer.Tick += (s, e) =>
{
logger.AddItem($"[{DateTime.Now:HH:mm:ss}] REQUEST: GET /api/v1/status - 200 OK");
};
timer.Start();
}
Example 3: Cinematic Credits Roll
Uses a slow scroll speed and custom font to create a movie-style ending credits sequence.
private void StartCredits()
{
var credits = siticoneFadingListView1;
// 1. Visuals
credits.FadeColor = Color.Black;
credits.LineColor = Color.Gold;
credits.LineFont = new Font("Segoe UI", 14f, FontStyle.Regular);
credits.FadeHeight = 150;
// 2. Slow, smooth movement
credits.Direction = AnimationDirection.TowardsTop;
credits.ScrollSpeed = 0.5f;
credits.UltraFastPerformance = false; // Keep opacity animations for quality
// 3. Add Content
credits.AddItem("EXECUTIVE PRODUCER");
credits.AddItem("John Doe");
credits.AddItem(""); // Spacer
credits.AddItem("LEAD DEVELOPER");
credits.AddItem("Jane Smith");
}