Siticone Logo
Siticone UI
DOCS
v2025.12.15
Docs Fading ListView

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

AddItem(string)
// 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.");
AddItems(IEnumerable<string>)
// Clears the current list and adds a collection of new items.
var logs = new List<string> { "Booting...", "Loading Kernel...", "Mounting Drives..." };
siticoneFadingListView1.AddItems(logs);
LoadFromPathAsync(string)
// 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");
Control Methods
// 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

Event Wiring
// 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

ThemePreset Enum (Subset)
// 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.

C# - Matrix Rain
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.

C# - Server Monitor
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.

C# - Credits Roll
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");
}