Token导航 LogoToken导航TokenDH.com
前端设计只读github未标认证来源可访问许可证需确认审计通过

syncfusion-winforms-scroll-frame同步融合 winforms 滚动框架

Agent Skill

syncfusion-winforms-scroll-frame 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

250

周安装

10

GitHub Stars

1

下载量

81
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:syncfusion-winforms-scroll-frame(同步融合 winforms 滚动框架)
来源仓库:https://github.com/syncfusion/winforms-ui-components-skills
仓库路径:skills/syncfusion-winforms-scroll-frame
安装命令:
npx skills add https://github.com/syncfusion/winforms-ui-components-skills --skill syncfusion-winforms-scroll-frame
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/syncfusion/winforms-ui-components-skills --skill syncfusion-winforms-scroll-frame

简介

Syncfusion WinForms 滚动框架控件,增强标准 Panel 的滚动条行为与内容容器能力。

  • 适用于需要自定义滚动逻辑、固定头部/尾部或复杂嵌套布局的应用。
  • 支持平滑滚动、惯性滑动、滚动条样式定制及内容尺寸动态调整。
  • 需确认项目是否已正确导入 Syncfusion 基础绘图库,否则可能出现滚动异常。
  • 在多线程环境下更新内容时务必调用 Invoke 方法,防止跨线程访问引发崩溃。

SKILL.md

Implementing Scroll Frames (SfScrollFrame)

The SfScrollFrame control provides theme-able, customizable scrollbars for Windows Forms applications. It attaches modern, styled scrollbars to any control derived from Microsoft's ScrollableControl or Container, replacing the default system scrollbars with fully customizable alternatives that support themes, context menus, and extensive appearance options.

When to Use This Skill

Use this skill when you need to:

  • Attach custom scrollbars to Panel, ListView, ListBox, or other scrollable controls
  • Apply themes to scrollbars (Office2016, Office2019, HighContrast)
  • Customize scrollbar appearance (colors, sizes, states)
  • Handle scrollbar events and context menus
  • Implement localization for scrollbar context menus
  • Enable UI automation for scrollbar testing (Coded UI, QTP)
  • Programmatically control scrolling with custom scroll speeds
  • Replace default Windows scrollbars with modern alternatives

Component Overview

Key Features

  • Universal Attachment: Works with any ScrollableControl-derived control (Panel, ListView, ListBox, etc.)
  • Theme Support: Built-in Office2016, Office2019, and HighContrast themes
  • Full Customization: Customize colors, sizes, and states for all scrollbar elements
  • Context Menu: Customizable right-click menu with localization support
  • Programmatic Scrolling: Control scroll position and speed via code
  • UI Automation: Support for Coded UI tests and QTP/UFT testing
  • Overlay Display: Scrollbars appear over default positions without layout changes

Architecture

SfScrollFrame
├── Control Property (attach to target)
├── HorizontalScrollBar
│   ├── Style (ScrollBarStyleInfo)
│   ├── Value, SmallChange
│   ├── EnableMaximumArrow, EnableMinimumArrow, EnableThumb
│   └── ContextMenuShowing event
└── VerticalScrollBar
    ├── Style (ScrollBarStyleInfo)
    ├── Value, SmallChange
    ├── EnableMaximumArrow, EnableMinimumArrow, EnableThumb
    └── ContextMenuShowing event

Documentation and Navigation Guide

Getting Started

📄 Read: references/getting-started.md

  • Assembly deployment and required references
  • Attaching SfScrollFrame through designer
  • Attaching SfScrollFrame through code
  • Programmatic scrolling with Value property
  • Configuring SmallChange for scroll speed
  • Basic implementation examples

Appearance and Styling

📄 Read: references/appearance-styling.md

  • Customizing scrollbar appearance with ScrollBarStyleInfo
  • Arrow button styling (colors, hover, pressed, disabled states)
  • Thumb styling (colors, width, border, states)
  • Disabling arrow buttons and thumbs
  • Built-in theme support (Office2016, Office2019, HighContrast)
  • Loading and applying theme assemblies
  • ThemeName property usage

Context Menu Customization

📄 Read: references/context-menu.md

  • Default context menu functionality
  • ContextMenuShowing event handling
  • Disabling default context menu
  • Showing custom context menus
  • Adding items to default context menu
  • ContextMenuShowingEventArgs properties

Localization Support

📄 Read: references/localization.md

  • Localizing scrollbar context menu strings
  • Adding resource files (.resx) to application
  • Creating culture-specific resources
  • Setting CurrentUICulture
  • Editing default culture resources
  • Localizing from different assemblies/namespaces

UI Automation and Testing

📄 Read: references/ui-automation.md

  • Microsoft UI Automation overview
  • Coded UI Test (CUIT) support (Level 1 & 2)
  • CodedUITestBuilder usage
  • Recording actions and adding assertions
  • Running automated tests
  • QTP/UFT testing support

Limitations and Constraints

📄 Read: references/limitations.md

  • Applicable controls (ScrollableControl derivatives)
  • Incompatible controls (custom scrollbar implementations)
  • LargeChange property constraints
  • Best practices and workarounds

Quick Start

Basic Implementation

using Syncfusion.WinForms.Controls;

// Create SfScrollFrame instance
SfScrollFrame sfScrollFrame1 = new SfScrollFrame();

// Create a ListView (or any ScrollableControl)
ListView listView1 = new ListView();
listView1.View = View.Details;
listView1.Columns.Add("Column 1", 150);
listView1.Columns.Add("Column 2", 150);

// Add items
for (int i = 0; i < 100; i++)
{
    listView1.Items.Add(new ListViewItem(new[] { $"Item {i}", $"Value {i}" }));
}

// Attach SfScrollFrame to ListView
sfScrollFrame1.Control = listView1;

// Add ListView to form
this.Controls.Add(listView1);

With Theme Applied

using Syncfusion.WinForms.Controls;
using Syncfusion.WinForms.Themes;

// In Program.cs
static void Main()
{
    // Load theme assembly
    SfSkinManager.LoadAssembly(typeof(Office2016Theme).Assembly);

    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new MainForm());
}

// In form
public MainForm()
{
    InitializeComponent();

    // Create and attach SfScrollFrame
    SfScrollFrame sfScrollFrame1 = new SfScrollFrame();
    sfScrollFrame1.Control = listView1;

    // Apply theme
    sfScrollFrame1.ThemeName = "Office2016Colorful";
}

Common Patterns

Pattern 1: Attach to Panel with Custom Styling

// Create Panel with content
Panel panel1 = new Panel();
panel1.AutoScroll = true;
panel1.Size = new Size(400, 300);

// Add controls to panel
for (int i = 0; i < 50; i++)
{
    Button btn = new Button();
    btn.Text = $"Button {i}";
    btn.Location = new Point(10, i * 30);
    panel1.Controls.Add(btn);
}

// Attach SfScrollFrame
SfScrollFrame sfScrollFrame1 = new SfScrollFrame();
sfScrollFrame1.Control = panel1;

// Customize vertical scrollbar appearance
sfScrollFrame1.VerticalScrollBar.Style.ScrollBarBackColor = Color.LightGray;
sfScrollFrame1.VerticalScrollBar.Style.ThumbColor = Color.Gray;
sfScrollFrame1.VerticalScrollBar.Style.ThumbHoverColor = Color.Black;
sfScrollFrame1.VerticalScrollBar.Style.ThumbPressedColor = Color.Blue;
sfScrollFrame1.VerticalScrollBar.Style.ThumbWidth = 10;

this.Controls.Add(panel1);

Pattern 2: Programmatic Scrolling with Speed Control

// Attach SfScrollFrame
sfScrollFrame1.Control = listView1;

// Configure scroll speed
sfScrollFrame1.HorizontalScrollBar.SmallChange = 10;
sfScrollFrame1.VerticalScrollBar.SmallChange = 20;

// Scroll to specific position
Button scrollButton = new Button();
scrollButton.Text = "Scroll to Middle";
scrollButton.Click += (s, e) =>
{
    // Get maximum scroll value
    int maxValue = sfScrollFrame1.VerticalScrollBar.Maximum;

    // Scroll to middle
    sfScrollFrame1.VerticalScrollBar.Value = maxValue / 2;
};

Pattern 3: Custom Context Menu

sfScrollFrame1.Control = listView1;

// Handle ContextMenuShowing event for vertical scrollbar
sfScrollFrame1.VerticalScrollBar.ContextMenuShowing += (sender, e) =>
{
    // Add custom menu item to default menu
    MenuItem customItem = new MenuItem("Show Current Position", (s, ev) =>
    {
        int position = sfScrollFrame1.VerticalScrollBar.Value;
        MessageBox.Show($"Current scroll position: {position}");
    });

    e.ContextMenu.MenuItems.Add(customItem);
};

Pattern 4: Disabled Arrow Buttons with Custom Colors

sfScrollFrame1.Control = panel1;

// Disable minimum arrows (top/left)
sfScrollFrame1.VerticalScrollBar.EnableMinimumArrow = false;
sfScrollFrame1.HorizontalScrollBar.EnableMinimumArrow = false;

// Set disabled button colors
sfScrollFrame1.VerticalScrollBar.Style.ArrowButtonDisabledBackColor = Color.Silver;
sfScrollFrame1.VerticalScrollBar.Style.ArrowButtonDisabledForeColor = Color.Gray;

sfScrollFrame1.HorizontalScrollBar.Style.ArrowButtonDisabledBackColor = Color.Silver;
sfScrollFrame1.HorizontalScrollBar.Style.ArrowButtonDisabledForeColor = Color.Gray;

Key Properties

SfScrollFrame Properties

PropertyTypeDescription
ControlControlThe control to which scrollbars are attached (must be ScrollableControl)
HorizontalScrollBarScrollBarBaseAccess to horizontal scrollbar configuration
VerticalScrollBarScrollBarBaseAccess to vertical scrollbar configuration
ThemeNamestringTheme to apply (Office2016Colorful, Office2016White, etc.)

ScrollBar Properties

PropertyTypeDescription
ValueintCurrent scroll position
SmallChangeintScroll amount for arrow button clicks
EnableMaximumArrowboolEnable/disable bottom/right arrow button
EnableMinimumArrowboolEnable/disable top/left arrow button
EnableThumbboolEnable/disable scrollbar thumb
StyleScrollBarStyleInfoAppearance customization settings

ScrollBarStyleInfo Properties

PropertyTypeDescription
ScrollBarBackColorColorBackground color of scrollbar track
ThumbColorColorNormal state thumb color
ThumbHoverColorColorThumb color when mouse hovers
ThumbPressedColorColorThumb color when clicked
ThumbWidthintWidth/height of thumb (max: scrollbar size)
ThumbBorderColorColorBorder color of thumb
ArrowButtonBackColorColorNormal state arrow button background
ArrowButtonForeColorColorNormal state arrow icon color
ArrowButtonHoverBackColorColorArrow button background on hover
ArrowButtonPressedBackColorColorArrow button background when clicked
ArrowButtonDisabledBackColorColorDisabled arrow button background
ArrowButtonBorderColorColorArrow button border color

Common Use Cases

Use Case 1: Enhanced ListView with Custom Scrollbars

Scenario: Replace default ListView scrollbars with themed, customized scrollbars.

Implementation:

// Setup ListView
ListView listView = new ListView { View = View.Details, Size = new Size(400, 300) };
listView.Columns.Add("Name", 150);
listView.Columns.Add("Value", 150);

// Attach themed scrollbar
SfScrollFrame scrollFrame = new SfScrollFrame();
scrollFrame.Control = listView;
scrollFrame.ThemeName = "Office2019Colorful";

// Customize thumb width
scrollFrame.VerticalScrollBar.Style.ThumbWidth = 8;
scrollFrame.HorizontalScrollBar.Style.ThumbWidth = 8;

Use Case 2: Panel with Fast Scrolling

Scenario: Panel containing many controls with increased scroll speed.

Implementation:

// Setup Panel
Panel panel = new Panel { AutoScroll = true, Size = new Size(500, 400) };

// Attach scrollbar with fast scrolling
SfScrollFrame scrollFrame = new SfScrollFrame();
scrollFrame.Control = panel;
scrollFrame.VerticalScrollBar.SmallChange = 30;   // Faster vertical scroll
scrollFrame.HorizontalScrollBar.SmallChange = 30; // Faster horizontal scroll

Use Case 3: Localized Application

Scenario: Multi-language application with localized scrollbar menus.

Implementation:

// Set culture before InitializeComponent
System.Threading.Thread.CurrentThread.CurrentUICulture =
    new System.Globalization.CultureInfo("de-DE");

InitializeComponent();

// SfScrollFrame automatically uses localized context menu strings
// if corresponding .resx files exist

Use Case 4: Disabled Scrollbar Interaction

Scenario: Display-only scrollable content (no thumb dragging).

Implementation:

SfScrollFrame scrollFrame = new SfScrollFrame();
scrollFrame.Control = listView;

// Disable thumb dragging (scrolling only via arrows/wheel)
scrollFrame.VerticalScrollBar.EnableThumb = false;
scrollFrame.HorizontalScrollBar.EnableThumb = false;

// Set disabled thumb color
scrollFrame.VerticalScrollBar.Style.ThumbDisabledColor = Color.LightGray;
scrollFrame.HorizontalScrollBar.Style.ThumbDisabledColor = Color.LightGray;

Troubleshooting

Issue: Scrollbars not appearing

Solution:

  • Verify the target control is derived from ScrollableControl
  • Check that content exceeds control size (scrollbars only appear when needed)
  • Ensure AutoScroll property is true for Panel controls

Issue: Theme not applying

Solution:

  • Load theme assembly in Program.cs before running application
  • Verify ThemeName spelling and casing
  • Check theme assembly is referenced in project

Issue: Context menu not showing

Solution:

  • Right-click directly on the scrollbar track or thumb
  • Verify ContextMenuShowing event isn't canceling the menu
  • Check that control is focused

Issue: SmallChange not working as expected

Solution:

  • SmallChange affects arrow button clicks, not mouse wheel scrolling
  • Mouse wheel scrolling is controlled by the attached control
  • Use higher values (10-30) for noticeable speed changes

Best Practices

  1. Attach early: Set the Control property in form constructor after InitializeComponent()
  2. Load themes once: Load theme assemblies in Program.cs, not per-form
  3. Consistent styling: Apply the same theme across all SfScrollFrame instances in your application
  4. SmallChange tuning: Test different values (10-50) to find optimal scroll speed
  5. Handle events: Subscribe to ContextMenuShowing for custom menu behavior
  6. Test compatibility: Verify SfScrollFrame works with your target control before deployment
  7. Localization setup: Add resource files early in development for multi-language apps
  8. Performance: Avoid excessive style property changes during runtime

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

39.01%
按下载量换算32

Claude

29.88%
按下载量换算24

Cursor

19.8%
按下载量换算16

Gemini CLI

8.86%
按下载量换算7

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills