npx skills add ...
npx skills add syncfusion/wpf-ui-components-skills --skill syncfusion-wpf-hub-tile
Implement Syncfusion WPF Tile Controls (SfHubTile and SfPulsingTile) for animated tile UIs. Use this when building Windows-style live tiles, tile transitions, tile animations, or grouped tile layouts in WPF. Covers Slide/Fade transitions, pulsing/zooming content, tile grouping, freeze/unfreeze animations, and desktop-style live tile experiences.
npx skills add syncfusion/wpf-ui-components-skills --skill syncfusion-wpf-hub-tile
Guide for implementing Syncfusion® WPF Tile Controls — SfHubTile and SfPulsingTile — which create Windows Desktop-style live tile UIs with animated transitions, content cycling, grouping, and freeze support.
Use this skill when you need to:
HubTileService| Control | Style | Key Capability |
|---|---|---|
SfHubTile | Live tile | Cycles between primary + secondary content via Slide/Fade transitions |
SfPulsingTile | Music/video tile | Continuously zooms and pans its content using PulseScale, RadiusX, RadiusY |
Both inherit from HubTileBase and share: Header, Title, ImageSource, IsFrozen, GroupName, ScaleDepth, TilePressDuration, Click, Command.
Required assemblies:
Syncfusion.SfHubTile.WPFSyncfusion.SfShared.WPFXAML namespace:
📄 Read: references/getting-started.md
📄 Read: references/hub-tile-features.md
HubTileTransitionsHubTileTransitionCompleted eventScaleDepth, TilePressDuration)📄 Read: references/pulsing-tile-features.md
PulseScale, PulseDuration)RadiusX, RadiusY, TranslateDuration)ScaleDepth, TilePressDuration)OverrideDefaultStates note📄 Read: references/grouping-and-freeze.md
GroupName property for tile groupingIsFrozen property to freeze/unfreeze a single tileHubTileService.Freeze / UnFreeze by instance or group nameSystem.Windows.Interactivity dependency notes📄 Read: references/appearance-and-themes.md
HeaderStyle and HeaderTemplate customizationTitleStyle customizationSecondaryContent and SecondaryContentTemplate (HubTile)SfSkinManagerSfHubTile with SecondaryContent + transitionsSfPulsingTile with PulseScale + RadiusX/RadiusYBind an ObservableCollection<Model> to a ListView and use ItemTemplate with SfHubTile. Each model exposes Header, ImageSource, and Interval properties. See references/grouping-and-freeze.md for the full MVVM example.
| Property | Control | Purpose |
|---|---|---|
Header | Both | Label displayed at tile bottom |
Title | Both | Notification text at tile top |
ImageSource | Both | Primary image path |
Foreground | Both | Text color (set to White for dark tiles) |
IsFrozen | Both | Stop/start animation |
GroupName | Both | Group tiles for bulk freeze/unfreeze |
Interval | SfHubTile | Time between transitions |
SecondaryContent | SfHubTile | Content shown during transition |
HubTileTransitions | SfHubTile | Transition effects (Slide, Fade) |
PulseScale | SfPulsingTile | Zoom magnitude |
PulseDuration | SfPulsingTile | Duration of one zoom cycle |
RadiusX / RadiusY | SfPulsingTile | Translation range on X/Y axes |
TranslateDuration | SfPulsingTile | Duration of one translation cycle |
ScaleDepth | Both | Press animation zoom depth |
TilePressDuration | Both | Press animation duration |
<syncfusion:SfPulsingTile Header="Music"
Title="Now Playing - Song Name"
ImageSource="/Assets/album.jpg"
Foreground="White"
PulseScale="2"
PulseDuration="00:00:03"
RadiusX="50"
RadiusY="50">
<Image Source="/Assets/album.jpg" Stretch="UniformToFill"/>
</syncfusion:SfPulsingTile>using Syncfusion.Windows.Controls.Notification;
SfHubTile hubTile = new SfHubTile();
hubTile.Header = "Mail";
hubTile.Title = "You have 5 new messages";
hubTile.Foreground = Brushes.White;
hubTile.ImageSource = new BitmapImage(new Uri(@"/Assets/mail.png", UriKind.RelativeOrAbsolute));
hubTile.HubTileTransitions.Add(new SlideTransition());
hubTile.Interval = TimeSpan.FromSeconds(3.0);
grid.Children.Add(hubTile);// Freeze single tile
hubTile.IsFrozen = true;
// Freeze entire group
HubTileService.Freeze("GroupName");
// Unfreeze entire group
HubTileService.UnFreeze("GroupName");