Skip to main content

syncfusion-winforms-card-layout

Implement stack-based card layout management in Windows Forms applications using Syncfusion CardLayout to organize controls as visible cards, navigate between cards, and configure layout modes for wizard controls and property pages.

Datos de origen

Repositorio
syncfusion/winforms-ui-components-skills
Última actividad en el origen
6 de julio de 2026 a las 07:19
Idioma detectado de SKILL.md
inglés
Estrellas
2
Forks
0

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Explorador de archivos
5 archivos

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
syncfusion-winforms-card-layout
description
Implement stack-based card layout management in Windows Forms applications using Syncfusion CardLayout to organize controls as visible cards, navigate between cards, and configure layout modes for wizard controls and property pages.
metadata
{"author":"Syncfusion Inc","version":"34.1.29"}
# Implementing CardLayout in Windows Forms ## When to Use This Skill Use this skill when you need to: - Create a stack-based card layout that displays one card (control) at a time - Build wizard-style interfaces with sequential card navigation - Implement property pages with card switching - Organize multiple panels or controls as cards within a container - Navigate programmatically between different views or screens ## Component Overview `CardLayout` is a layout manager that organizes controls in a stack-of-cards appearance. Each control added to the layout becomes a "card," and only one card is visible at a time. The container acts as a stack of cards, with the first component added being initially visible. Cards can be configured with custom names, images, and sizing behavior. **Key Capabilities:** - Set unique names for each card - Navigate between cards (First, Next, Previous, Last) - Configure layout modes (Default or Fill) - Maintain aspect ratio for child controls - Get/set selected card by name or index ## Documentation and Navigation Guide ### Getting Started 📄 **Read:** [references/getting-started.md](references/getting-started.md) - Assembly and NuGet package installation - Adding CardLayout via designer or code - Creating and configuring container panel - Adding child controls as cards - Basic card navigation with Next/Previous methods ### Configuring CardLayout 📄 **Read:** [references/configuring-cardlayout.md](references/configuring-cardlayout.md) - Setting custom card names with SetCardName - Getting card names and components - Working with card indices (NextCardIndex, PreviousCardIndex) - Aspect ratio maintenance (MaintainAspectRatio) - Layout modes: Default vs Fill - Setting preferred and minimum sizes ### Card Navigation 📄 **Read:** [references/card-navigation.md](references/card-navigation.md) - Selecting cards by name using SelectedCard property - Navigation methods: First(), Next(), Previous(), Last() - Using SmartTag in designer for card selection - Code-based navigation with buttons - ComboBox integration for card selection - Runtime card switching ### Child Controls Configuration 📄 **Read:** [references/child-controls.md](references/child-controls.md) - Adding child controls as cards to the layout - Image settings for cards - PreferredSize and MinimumSize configuration - Container and child control setup - Styling child controls ## Quick Start Example ```csharp using Syncfusion.Windows.Forms.Tools; using System.Windows.Forms; public class CardLayoutForm : Form { private CardLayout cardLayout1; private Panel cardLayoutPanel; private Panel card1; private Panel card2; public CardLayoutForm() { // Initialize CardLayout cardLayout1 = new CardLayout(); cardLayoutPanel = new Panel(); cardLayoutPanel.BackColor = Color.White; cardLayoutPanel.Dock = DockStyle.Fill; // Set container cardLayout1.ContainerControl = cardLayoutPanel; // Create cards (panels) card1 = new Panel(); card1.BackColor = Color.LightBlue; card1.Controls.Add(new Label { Text = "Card 1", AutoSize = true }); card2 = new Panel(); card2.BackColor = Color.LightGreen; card2.Controls.Add(new Label { Text = "Card 2", AutoSize = true }); // Add cards to the main panel cardLayoutPanel.Controls.Add(card1); cardLayoutPanel.Controls.Add(card2); // Set card names cardLayout1.SetCardName(card1, "FirstCard"); cardLayout1.SetCardName(card2, "SecondCard"); // Navigate between cards cardLayout1.SelectedCard = "FirstCard"; cardLayout1.Next(); // Display SecondCard // Add to form this.Controls.Add(cardLayoutPanel); } } ``` ## Common Patterns ### Pattern 1: Wizard Interface Create sequential steps where users navigate forward/backward through cards: ```csharp private void NextButton_Click(object sender, EventArgs e) { this.cardLayout1.Next(); } private void PreviousButton_Click(object sender, EventArgs e) { this.cardLayout1.Previous(); } ``` ### Pattern 2: Dropdown Card Selection Allow users to select cards from a dropdown list: ```csharp private void CardSelectionComboBox_SelectedIndexChanged(object sender, EventArgs e) { string selectedCardName = CardSelectionComboBox.SelectedItem.ToString(); this.cardLayout1.SelectedCard = selectedCardName; } ``` ### Pattern 3: Fill Container Make cards stretch to fill the entire container: ```csharp this.cardLayout1.LayoutMode = CardLayoutMode.Fill; ``` ## Key Properties | Property | Type | Description | |----------|------|-------------| | `SelectedCard` | string | Gets/sets the current visible card by name | | `LayoutMode` | CardLayoutMode | Gets/sets layout mode (Default or Fill) | | `NextCardIndex` | int | Returns the index of the next card | | `PreviousCardIndex` | int | Returns the index of the previous card | | `ContainerControl` | Control | Gets/sets the container for the layout | ## Key Methods | Method | Purpose | |--------|---------| | `First()` | Display the first card | | `Next()` | Display the next card | | `Previous()` | Display the previous card | | `Last()` | Display the last card | | `SetCardName(Control, string)` | Assign a custom name to a card | | `GetCardName(Control)` | Get the name of a card | | `GetCardNames()` | Get all card names as array | | `GetComponentFromName(string)` | Get control by card name | | `SetMaintainAspectRatio(Control, bool)` | Configure aspect ratio maintenance |
Ver en GitHub