mcpField
S
syncfusion-winforms-hub-tile

syncfusion-winforms-hub-tile

github.com/syncfusion设计与 UI280 次安装1 周前更新
代码仓库

关于 syncfusion-winforms-hub-tile

此技能指导在 Windows Forms 应用中实现 Syncfusion HubTile 动态磁贴。它介绍滑动、翻转和脉冲缩放动画,以及磁贴内容、样式和动画控制。

主要功能

  1. 01提供滑动、翻转和脉冲动画
  2. 02配置标题、页脚、图像与横幅
  3. 03自定义悬停、选中和按下效果
  4. 04控制动画启停与冻结
  5. 05设置转场方向、速度和缩放

适用场景

  1. 01构建带动态内容的仪表板
  2. 02展示滑动更新的新闻内容
  3. 03制作带脉冲动画的媒体磁贴
  4. 04以翻转磁贴展示状态及详情

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/syncfusion/winforms-ui-components-skills --skill syncfusion-winforms-hub-tile

安装后在 Claude Code 中输入/syncfusion-winforms-hub-tile确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
appearance-styling.md
default-tile.md
freezing-control.md
getting-started.md
pulsing-tile.md
rotate-tile.md

详细介绍

实现 HubTiles

何时使用此技能

当用户需要在 Windows Forms 应用程序中实现 Syncfusion HubTile 控件时,请使用此技能。HubTile 提供实时磁贴功能,具有类似于 Windows 8 和 Windows Phone 的动画过渡效果。

常见用例
  1. 仪表板磁贴 - 内容动态更新的仪表板面板,并带有动画效果
  2. 应用启动器 - Windows 8 风格的开始屏幕磁贴
  3. 状态显示 - 带有过渡效果的动画状态指示器
  4. 实时通知 - 通过滑动/旋转/脉冲效果更新内容的磁贴
  5. 媒体库 - 带有脉冲动画的音乐/视频磁贴
  6. 新闻源 - 在内容更新之间切换的磁贴
  7. KPI 面板 - 带有动态更新效果的关键绩效指标
  8. 导航菜单 - 类似于 Windows Phone 的交互式磁贴导航

何时不使用: 对于不需要动画效果的静态按钮或面板,请使用标准 Button 或 Panel 控件。对于数据网格或表格,请使用 DataGridView 或 Syncfusion GridControl。

组件概述

Syncfusion HubTile 是一种内容控件,可用作带有自动动画的实时磁贴。内容更新通过各种过渡效果显示,类似于 Windows 8 和 Windows Phone 实时磁贴。

关键组件:

  • 标题区域(顶部)
  • 内容/图像区域(中心)
  • 页脚区域(底部)
  • 可选的横幅叠加层
磁贴类型

HubTile 支持三种动画样式:

1. DefaultTile

通过滑动过渡效果(从下到上、从上到下、从左到右、从右到左)提供通知。

适用于:

  • 显示连续更新的内容
  • 新闻或状态信息流
  • 按特定方向流动的内容
2. RotateTile

通过水平或垂直旋转磁贴来播放动画,翻转后显示另一组内容。

适用于:

  • 显示正反两面的内容(例如,问题/答案)
  • 双状态显示
  • 适合翻转动画的内容
3. PulsingTile

创建类似于 Windows Phone 音乐和视频磁贴的缩放效果。

适用于:

  • 媒体内容(音乐、视频、照片)
  • 吸引用户注意内容
  • 打造动态的视觉效果

文档和导航指南

安装和设置

📄 阅读: references/getting-started.md

当用户需要首次设置 HubTile 时使用。涵盖:

  • 程序集引用(Syncfusion.Tools.Windows.dll、Syncfusion.Shared.Base.dll)
  • NuGet 包安装
  • 命名空间导入(Syncfusion.Windows.Forms.Tools)
  • 设计器和基于代码的设置
  • 创建基本磁贴
  • 添加图像、标题和页脚
  • 框架支持(.NET Framework 4.5+、.NET 6.0-8.0)
DefaultTile(滑动过渡)

📄 阅读: references/default-tile.md

当用户需要带有滑动过渡效果的磁贴时使用。涵盖:

  • DefaultTile 配置
  • Title、Footer 和 ImageSource 属性
  • 过渡效果(BottomToTop、TopToBottom、LeftToRight、RightToLeft)
  • SlideTransition 属性
  • ImageTransitionSpeed 控制
  • TurnLiveTileOn 属性
  • 完整的过渡示例
RotateTile(翻转动画)

📄 阅读: references/rotate-tile.md

当用户需要旋转/翻转磁贴时使用。涵盖:

  • RotateTile 配置
  • 水平和垂直旋转
  • RotationTransition 属性
  • TileFlipDirection(Horizontal、Vertical)
  • RotationTransitionSpeed 控制
  • 正反面内容设置
  • 完整的旋转示例
PulsingTile(缩放效果)

📄 阅读: references/pulsing-tile.md

当用户需要带有缩放动画的磁贴时使用。涵盖:

  • PulsingTile 配置
  • 放大/缩小效果
  • PulseDuration 属性(间隔控制)
  • PulseScale 属性(缩放级别)
  • 图像平移效果
  • 媒体磁贴样式
  • 完整的脉冲动画示例
外观和样式

📄 阅读: references/appearance-styling.md

当用户想要自定义磁贴外观时阅读。内容包括:

  • 横幅的显示与自定义
  • 横幅文字、图标和颜色
  • 选择标记(Windows 8 风格)
  • SelectionMarkerColor 属性
  • 悬停时的边框颜色
  • EnableHoverColor 属性
  • 悬停时展开功能
  • 磁贴按下行为(滑动效果)
  • EnableTileSlideEffect 属性
  • 完整的样式示例
冻结和控制

📄 阅读: references/freezing-control.md

当用户需要暂停或恢复磁贴动画时阅读。内容包括:

  • IsFrozen 属性
  • 以编程方式停止动画
  • 动态冻结/解冻
  • 冻结的使用场景(加载、用户交互)
  • 状态管理
  • 完整的控制示例

快速入门示例

带滑动过渡的 DefaultTile
using Syncfusion.Windows.Forms.Tools;

// Create HubTile
HubTile newsTile = new HubTile();
newsTile.Size = new Size(200, 200);
newsTile.Location = new Point(20, 20);

// Set tile type
newsTile.TileType = HubTileType.DefaultTile;

// Configure content
newsTile.Title.Text = "Breaking News";
newsTile.Title.TextColor = Color.White;
newsTile.Footer.Text = "CNN";
newsTile.Footer.TextColor = Color.White;
newsTile.BackColor = Color.FromArgb(17, 158, 218);

// Set background image
newsTile.ImageSource = Image.FromFile("news.jpg");

// Enable live tile with transition
newsTile.TurnLiveTileOn = true;
newsTile.SlideTransition = TransitionDirection.BottomToTop;
newsTile.ImageTransitionSpeed = 3;

// Add to form
this.Controls.Add(newsTile);
带翻转动画的 RotateTile
// Create rotating tile
HubTile rotateTile = new HubTile();
rotateTile.Size = new Size(200, 200);
rotateTile.Location = new Point(240, 20);

// Set tile type
rotateTile.TileType = HubTileType.RotateTile;

// Configure content
rotateTile.Title.Text = "Weather";
rotateTile.Title.TextColor = Color.White;
rotateTile.Footer.Text = "72°F Sunny";
rotateTile.Footer.TextColor = Color.White;
rotateTile.BackColor = Color.FromArgb(255, 140, 0);

// Configure rotation
rotateTile.TurnLiveTileOn = true;
rotateTile.RotationTransition = TileFlipDirection.Horizontal;
rotateTile.RotationTransitionSpeed = 2;

// Add image
rotateTile.ImageSource = Image.FromFile("weather.jpg");

this.Controls.Add(rotateTile);
用于媒体的 PulsingTile
// Create pulsing tile
HubTile mediaTile = new HubTile();
mediaTile.Size = new Size(200, 200);
mediaTile.Location = new Point(460, 20);

// Set tile type
mediaTile.TileType = HubTileType.PulsingTile;

// Configure content
mediaTile.Title.Text = "Now Playing";
mediaTile.Title.TextColor = Color.White;
mediaTile.Footer.Text = "Music";
mediaTile.Footer.TextColor = Color.White;
mediaTile.BackColor = Color.FromArgb(139, 0, 139);

// Configure pulsing effect
mediaTile.TurnLiveTileOn = true;
mediaTile.PulseDuration = 2;
mediaTile.PulseScale = 1.5f;

// Add album art
mediaTile.ImageSource = Image.FromFile("album.jpg");

this.Controls.Add(mediaTile);

磁贴类型选择指南

需求使用此类型原因
按顺序更新内容DefaultTile平滑的滑动过渡可展示内容变化
定向流动(新闻动态)DefaultTile(BottomToTop)更新内容的阅读顺序自然
双状态内容RotateTile翻转可展示替代信息
正反面内容RotateTile非常适合问题/答案、信息/详情
媒体内容显示PulsingTile符合 Windows Phone 音乐/视频风格
吸引注意力PulsingTile缩放效果可增加视觉趣味
静态动画磁贴使用 IsFrozen = false 的任意类型自动播放动画
交互式磁贴DefaultTile + EnableTileSlideEffect按下时提供反馈效果

常见模式

模式 1:包含多种磁贴类型的仪表板
// Create dashboard layout
FlowLayoutPanel dashboard = new FlowLayoutPanel();
dashboard.Dock = DockStyle.Fill;
dashboard.BackColor = Color.FromArgb(30, 30, 30);
dashboard.Padding = new Padding(10);

// News tile (DefaultTile with slide)
HubTile newsTile = CreateDefaultTile("News", "Latest Updates", Color.FromArgb(17, 158, 218));
newsTile.SlideTransition = TransitionDirection.BottomToTop;
dashboard.Controls.Add(newsTile);

// Weather tile (RotateTile with flip)
HubTile weatherTile = CreateRotateTile("Weather", "72°F", Color.FromArgb(255, 140, 0));
weatherTile.RotationTransition = TileFlipDirection.Horizontal;
dashboard.Controls.Add(weatherTile);

// Media tile (PulsingTile with zoom)
HubTile mediaTile = CreatePulsingTile("Music", "Now Playing", Color.FromArgb(139, 0, 139));
mediaTile.PulseScale = 1.3f;
dashboard.Controls.Add(mediaTile);

this.Controls.Add(dashboard);
模式 2:带横幅通知的磁贴
HubTile notificationTile = new HubTile();
notificationTile.TileType = HubTileType.DefaultTile;
notificationTile.Size = new Size(200, 200);

// Main content
notificationTile.Title.Text = "Messages";
notificationTile.Footer.Text = "Inbox";
notificationTile.BackColor = Color.FromArgb(0, 120, 215);

// Enable banner
notificationTile.ShowBanner = true;
notificationTile.Banner.Text = "5 new messages";
notificationTile.Banner.TextColor = Color.White;
notificationTile.BannerColor = Color.FromArgb(255, 0, 0);

// Optional banner icon
notificationTile.ShowBannerIcon = true;
notificationTile.BannerIcon = Image.FromFile("notification.png");

// Enable transition
notificationTile.TurnLiveTileOn = true;
notificationTile.SlideTransition = TransitionDirection.LeftToRight;
模式 3:带悬停效果的交互式磁贴
HubTile interactiveTile = new HubTile();
interactiveTile.TileType = HubTileType.DefaultTile;
interactiveTile.Size = new Size(200, 200);

// Content
interactiveTile.Title.Text = "Documents";
interactiveTile.Footer.Text = "Recent Files";
interactiveTile.BackColor = Color.FromArgb(0, 150, 136);

// Enable hover effects
interactiveTile.EnableHoverColor = true;
interactiveTile.HoveredBorderColor = Color.White;
interactiveTile.ExpandOnHover = true;

// Enable press effect
interactiveTile.EnableTileSlideEffect = true;

// Selection marker
interactiveTile.IsSelectionMarked = true;
interactiveTile.SelectionMarkerColor = Color.Yellow;

// Click handler
interactiveTile.Click += (s, e) => {
    MessageBox.Show("Tile clicked!");
};
模式 4:交互时冻结/解冻
HubTile controlledTile = new HubTile();
controlledTile.TileType = HubTileType.RotateTile;
controlledTile.TurnLiveTileOn = true;

// Freeze on mouse enter
controlledTile.MouseEnter += (s, e) => {
    controlledTile.IsFrozen = true;
};

// Unfreeze on mouse leave
controlledTile.MouseLeave += (s, e) => {
    controlledTile.IsFrozen = false;
};

关键属性

通用属性(所有磁贴类型)
属性类型说明
TileTypeHubTileTypeDefaultTile、RotateTile 或 PulsingTile
TurnLiveTileOnbool启用/禁用动画
IsFrozenbool临时冻结动画
Title.Textstring标题文字(磁贴顶部)
Title.TextColorColor标题文字颜色
Footer.Textstring页脚文字(磁贴底部)
Footer.TextColorColor页脚文字颜色
ImageSourceImage背景图像
BackColorColor磁贴背景颜色
DefaultTile 属性
属性类型说明
SlideTransitionTransitionDirectionBottomToTop、TopToBottom、LeftToRight、RightToLeft
ImageTransitionSpeedint过渡速度(1-10,数值越大越快)
ShowBannerbool显示横幅叠加层
Banner.Textstring横幅通知文字
BannerColorColor横幅背景颜色
ShowBannerIconbool在横幅中显示图标
BannerIconImage横幅图标图像
IsSelectionMarkedbool显示选择标记(Windows 8 风格)
SelectionMarkerColorColor选择标记边框颜色
EnableHoverColorbool启用悬停边框高亮
HoveredBorderColorColor悬停时的边框颜色
ExpandOnHoverbool鼠标悬停时展开磁贴
EnableTileSlideEffectbool鼠标按下时启用滑动效果
RotateTile 属性
属性类型说明
RotationTransitionTileFlipDirection水平或垂直旋转
RotationTransitionSpeedint旋转速度(1-10,数值越大越快)
PulsingTile 属性
属性类型描述
PulseDurationint放大/缩小间隔(秒)
PulseScalefloat缩放级别(1.0 = 100%,2.0 = 200%)

常见用例

1. 应用仪表板

场景: 采用 Windows 8 风格开始屏幕,包含多个应用磁贴
解决方案: 使用包含多个 HubTiles 的 FlowLayoutPanel,并采用不同的磁贴类型和过渡效果

2. 实时新闻推送

场景: 新闻磁贴从底部滑入更新内容
解决方案: 使用带有 BottomToTop 过渡效果的 DefaultTile,并通过计时器定期更新内容

3. 媒体库

场景: 带有脉动动画的音乐/视频磁贴
解决方案: 使用设置了合适 PulseScale 的 PulsingTile,并添加专辑/视频封面图

4. 状态监视器

场景: 通过翻转显示详细信息的系统状态磁贴
解决方案: 使用 RotateTile,正面显示状态图标,背面显示详细指标

5. 通知中心

场景: 带有警报横幅通知的磁贴
解决方案: 启用 ShowBanner 的 DefaultTile,并动态更新 Banner.Text

6. 交互式菜单

场景: 适合触控操作的导航磁贴
解决方案: 使用启用 EnableTileSlideEffect 和 ExpandOnHover 的 DefaultTile,并添加点击处理程序

最佳实践

  1. 选择合适的磁贴类型 - 顺序显示内容使用 DefaultTile,双状态显示使用 RotateTile,媒体内容使用 PulsingTile
  2. 设置合理的过渡速度 - 速度设为 2-4 可实现平滑动画,避免突兀
  3. 使用一致的尺寸 - 标准 Windows 8 磁贴尺寸为 150x150、310x150 或 310x310
  4. 采用协调的配色方案 - 同一类别的磁贴使用相关颜色
  5. 有选择地启用实时磁贴 - 不要同时为所有磁贴启用动画,以免造成干扰
  6. 提供清晰的标题/页脚 - 帮助用户一眼识别磁贴用途
  7. 将横幅用于紧急通知 - 将横幅空间留给重要更新
  8. 交互时冻结动画 - 可考虑在用户悬停时冻结磁贴,以免造成干扰
  9. 测试过渡方向 - 确保滑动方向符合内容流逻辑
  10. 处理点击事件 - 为磁贴添加有意义的点击操作,使其具有交互性

磁贴样式指南

Windows 8 调色板
// Microsoft-inspired colors
Color TealBlue = Color.FromArgb(0, 120, 215);      // Default blue
Color LimeGreen = Color.FromArgb(16, 137, 62);     // Success/positive
Color OrangeRed = Color.FromArgb(202, 80, 16);     // Warning
Color CrimsonRed = Color.FromArgb(232, 17, 35);    // Error/urgent
Color Purple = Color.FromArgb(107, 105, 214);      // Media/entertainment
Color Teal = Color.FromArgb(0, 153, 188);          // Information
尺寸建议
// Small tile (single)
Size smallTile = new Size(150, 150);

// Wide tile (horizontal)
Size wideTile = new Size(310, 150);

// Large tile
Size largeTile = new Size(310, 310);

评论

支持 Markdown