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.

来源信息

仓库
syncfusion/winforms-ui-components-skills
最近来源活动
2026年7月6日 07:19
检测到的 SKILL.md 语言
英语
星标
2
分支
0

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
5 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
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 |
在 GitHub 查看