
syncfusion-winui-badge
Guide implementation of the Syncfusion WinUI Badge control (SfBadge) for displaying notification badges and status indicators. Use this skill when working with badge notifications, unread count badges, BadgeContainer, or notification overlays in WinUI applications. Covers shapes, colors, positioning, alignment, animations, and customization patterns.
- Installs
- 51
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/syncfusion/winui-ui-components-skills --skill syncfusion-winui-badge- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads syncfusion-winui-badge automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Implementing Badges in WinUI
The Syncfusion WinUI Badge control (SfBadge) displays notifications, counts, or status indicators overlaid on other UI elements. Use badges to show unread message counts, notification indicators, status changes, or any numeric/text overlay on buttons, icons, or controls.
When to Use This Skill
Use this skill when you need to:
- Display notification counts on buttons, icons, or UI elements
- Show unread message indicators in messaging or email interfaces
- Add status badges to user avatars or profile pictures
- Create notification overlays on navigation items
- Implement count indicators for shopping carts or lists
- Show warning, error, or success states with badges
- Position badges at specific locations on controls
- Customize badge appearance (colors, shapes, animations)
- Work with the
SfBadgeorBadgeContainercomponents
Component Overview
Key Capabilities:
- Multiple shapes (Oval, Rectangle, Ellipse, Custom)
- Predefined color states (Accent, Success, Warning, Error, Information)
- Flexible positioning and alignment
- Custom content and formatting
- Animation support (Scale, Opacity)
- Works with or without
BadgeContainer - Complete customization (colors, fonts, strokes, rotation)
Basic Usage Pattern:
<notification:BadgeContainer>
<notification:BadgeContainer.Content>
<Button Content="Inbox"/>
</notification:BadgeContainer.Content>
<notification:BadgeContainer.Badge>
<notification:SfBadge Content="10" Fill="Success"/>
</notification:BadgeContainer.Badge>
</notification:BadgeContainer>
Documentation and Navigation Guide
Getting Started
📄 Read: references/getting-started.md
When you need to:
- Install and set up the Badge component
- Create your first Badge implementation
- Add Badge to buttons or other controls
- Understand BadgeContainer usage
- Set basic badge content and properties
- Learn the component structure
Shapes and Fill Styles
📄 Read: references/shapes-and-fills.md
When you need to:
- Change badge shape (Oval, Rectangle, Ellipse)
- Use predefined fill colors (Success, Warning, Error, etc.)
- Understand badge color states
- Create custom shapes with
CustomShapeproperty - Choose appropriate visual styles for different badge types
Alignment and Positioning
📄 Read: references/alignment-positioning.md
When you need to:
- Align badge horizontally or vertically
- Position badge inside, outside, or centered on edges
- Place badge at custom positions (0-1 range)
- Use anchor positioning
- Adjust badge content alignment
- Control padding and spacing
- Handle auto re-positioning
Customization Options
📄 Read: references/customization.md
When you need to:
- Set custom background and foreground colors
- Create completely custom badge shapes
- Customize badge UI with ContentTemplate
- Add strokes and borders
- Change text formatting (font, size, style)
- Rotate badges
- Adjust opacity
- Control badge size
- Hide or show badges
Features and Configuration
📄 Read: references/features.md
When you need to:
- Add animations (Scale or Opacity)
- Format badge content with converters
- Use Badge without BadgeContainer
- Implement badges in ListView or data templates
- Apply advanced content formatting
- Handle dynamic badge scenarios
Quick Start
1. Install NuGet Package
Install-Package Syncfusion.Notifications.WinUI
2. Import Namespace
xmlns:notification="using:Syncfusion.UI.Xaml.Notifications"
3. Basic Badge Implementation
<notification:BadgeContainer>
<notification:BadgeContainer.Content>
<Button Content="Notifications" Width="120" Height="40"/>
</notification:BadgeContainer.Content>
<notification:BadgeContainer.Badge>
<notification:SfBadge Content="5" Fill="Error"/>
</notification:BadgeContainer.Badge>
</notification:BadgeContainer>
Common Patterns
Pattern 1: Unread Message Count
<notification:BadgeContainer>
<notification:BadgeContainer.Content>
<Button Content="Messages" FontSize="16"/>
</notification:BadgeContainer.Content>
<notification:BadgeContainer.Badge>
<notification:SfBadge Content="{x:Bind UnreadCount, Mode=OneWay}"
Fill="Error"
Shape="Ellipse"/>
</notification:BadgeContainer.Badge>
</notification:BadgeContainer>
Pattern 2: Status Indicator
<notification:BadgeContainer>
<notification:BadgeContainer.Content>
<PersonPicture Width="60" Height="60" ProfilePicture="/Assets/user.png"/>
</notification:BadgeContainer.Content>
<notification:BadgeContainer.Badge>
<notification:SfBadge Shape="None"
HorizontalPosition="0.85"
VerticalPosition="0.85">
<Ellipse Width="16" Height="16" Fill="LimeGreen"/>
</notification:SfBadge>
</notification:BadgeContainer.Badge>
</notification:BadgeContainer>
Pattern 3: Success/Warning States
<!-- Success Badge -->
<notification:SfBadge Content="Verified"
Fill="Success"
Shape="Rectangle"/>
<!-- Warning Badge -->
<notification:SfBadge Content="!"
Fill="Warning"
Shape="Ellipse"/>
<!-- Error Badge -->
<notification:SfBadge Content="Error"
Fill="Error"
Shape="Oval"/>
Pattern 4: Custom Formatted Count
// Converter to format large numbers
public class CountFormatConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
if (int.TryParse(value?.ToString(), out int count))
{
if (count <= 99) return count.ToString();
if (count <= 999) return "99+";
if (count < 99999) return (count / 1000).ToString("0.#") + "K";
return (count / 1000000).ToString("0.#") + "M";
}
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
<Page.Resources>
<local:CountFormatConverter x:Key="countFormatter"/>
</Page.Resources>
<notification:SfBadge Content="{x:Bind Count, Mode=OneWay, Converter={StaticResource countFormatter}}"
Background="Red"
Foreground="White"/>
Pattern 5: Badge in ListView
<ListView ItemsSource="{x:Bind MailItems}">
<ListView.ItemTemplate>
<DataTemplate x:DataType="local:MailItem">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{x:Bind FolderName}"
VerticalAlignment="Center"/>
<notification:SfBadge Grid.Column="1"
Content="{x:Bind UnreadCount}"
Fill="Warning"
Shape="Oval"
Visibility="{x:Bind HasUnread}"/>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Key Properties
Content and Display
- Content - Text or number to display in badge
- ContentTemplate - Custom template for badge content
- Visibility - Show or hide badge (Visible/Collapsed)
Shape and Style
- Shape - Badge shape: Oval, Rectangle, Ellipse, None, Custom
- Fill - Predefined color: Accent, Success, Warning, Error, Information, Alt, Default
- CustomShape - Geometry for custom badge shapes
- Background/Foreground - Custom colors
Positioning (with BadgeContainer)
- HorizontalAlignment - Left, Center, Right (default: Right)
- VerticalAlignment - Top, Center, Bottom (default: Top)
- HorizontalAnchor - Inside, Center, Outside (default: Center)
- VerticalAnchor - Inside, Center, Outside (default: Center)
- HorizontalPosition - 0 to 1 for custom positioning (default: 1)
- VerticalPosition - 0 to 1 for custom positioning (default: 0)
Appearance
- Width/Height - Badge dimensions (default: 40x30)
- Padding - Internal content spacing
- FontSize/FontFamily/FontStyle - Text formatting
- Stroke/StrokeThickness - Border styling
- Rotation - Rotation angle in degrees
- Opacity - Transparency (0-1)
Animation
- AnimationType - None, Scale, Opacity (animates on content change)
Common Use Cases
- Email/Messaging Apps - Unread message counts on inbox buttons
- E-commerce - Item counts in shopping cart badges
- Social Media - Notification counts on notification icons
- Status Indicators - Online/offline/away status on avatars
- Navigation Menus - New item indicators on menu items
- Dashboard Widgets - Alert counts on dashboard cards
- Forms - Error or warning indicators on form fields
- Lists - Item counts or status on list items
When to Use BadgeContainer vs Standalone
Use BadgeContainer when:
- Badge needs to overlay another control (Button, Image, Icon)
- You need automatic positioning relative to content
- You want badge to follow content when resizing
Use standalone Badge when:
- Badge is part of a layout (Grid, StackPanel)
- You're handling positioning with layout containers
- Using badges in ItemTemplates or DataTemplates
- You need manual position control
Tips and Best Practices
- Choose appropriate Fill colors - Use Success (green) for positive states, Warning (orange) for alerts, Error (red) for critical notifications
- Keep content concise - Single digit, short text, or icon works best
- Use Ellipse shape for numbers - Oval or Ellipse shapes work well for numeric counts
- Format large numbers - Display "99+" for counts over 99 to avoid badge becoming too wide
- Consider accessibility - Ensure sufficient color contrast between background and foreground
- Animate content changes - Use Scale or Opacity animation to draw attention to updates
- Hide when zero - Set Visibility to Collapsed when count is zero or null
- Test different sizes - Verify badge appearance on various control sizes
- Use consistent positioning - Keep badge position consistent across similar controls in your app
Troubleshooting Quick Reference
| Issue | Solution |
|---|---|
| Badge not visible | Check Visibility property, ensure Content is set, verify parent container size |
| Position incorrect | Review HorizontalAnchor/VerticalAnchor values, check alignment properties |
| Content cut off | Increase Width/Height or adjust Padding |
| Color not applying | Background overrides Fill - use one or the other |
| Animation not working | Animation only triggers on Content change, verify AnimationType is set |
| Badge not overlapping | Ensure using BadgeContainer, not standalone Badge |
For detailed implementation guidance, refer to the specific documentation files listed in the Navigation Guide above.
FAQ
What does the syncfusion-winui-badge skill do?
Guide implementation of the Syncfusion WinUI Badge control (SfBadge) for displaying notification badges and status indicators. Use this skill when working with badge notifications, unread count badges, BadgeContainer, or notification overlays in WinUI applications. Covers shapes, colors, positioning, alignment, animations, and customization patterns.
How do I install syncfusion-winui-badge?
Run npx skills add https://github.com/syncfusion/winui-ui-components-skills --skill syncfusion-winui-badge in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/syncfusion-winui-badge/ (personal) or .claude/skills/syncfusion-winui-badge/ (project).
Which AI agents can use syncfusion-winui-badge?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is syncfusion-winui-badge safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains syncfusion-winui-badge?
It is published by syncfusion in syncfusion/winui-ui-components-skills. It has 51 recorded installs.
More from syncfusion/winui-ui-components-skills
syncfusion-winui-getting-started
syncfusion/winui-ui-components-skills
Comprehensive guide for setting up Syncfusion WinUI components, including license registration, NuGet package installation, system requirements verification, and troubleshooting. Use this skill when users need help with Syncfusion licensing, installation, WinUI component configuration, theme setup, or resolving installation errors.
syncfusion-winui-treeview
syncfusion/winui-ui-components-skills
Comprehensive guide for implementing Syncfusion WinUI TreeView (SfTreeView) control in desktop applications. Use this skill when working with hierarchical data display, tree structures, or node-based navigation. Covers TreeView implementation for file explorers, organization charts, category browsers, and expandable/collapsible data visualization in WinUI applications.
syncfusion-winui-datagrid
syncfusion/winui-ui-components-skills
Guide for implementing Syncfusion WinUI DataGrid (SfDataGrid) for tabular data display in desktop applications. Use this skill when working with data grids, sorting, filtering, grouping, or CRUD operations. Covers data binding, column configuration, master-details views, Excel export, and performance optimization including data virtualization and custom templates.
syncfusion-winui-polar-charts
syncfusion/winui-ui-components-skills
Open the skill to read its SKILL.md instructions.
syncfusion-winui-numberbox
syncfusion/winui-ui-components-skills
Learn to implement Syncfusion WinUI NumberBox (SfNumberBox) control for numeric input with validation, custom formatting, and value restrictions. Use this skill when you need numeric input fields with currency, percentage, or decimal formatting in WinUI applications.
syncfusion-winui-treegrid
syncfusion/winui-ui-components-skills
Guide for implementing Syncfusion WinUI TreeGrid (SfTreeGrid) components for displaying hierarchical or self-relational data. Use this skill when working with tree-structured grids, parent-child data relationships, or expandable grid rows. Covers TreeGrid features for organizational charts, file system displays, and multi-level data representation in WinUI applications.
Popular frontend & design skills
setup-matt-pocock-skills
mattpocock/skills
Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.
frontend-design
anthropics/skills
Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.
hyperframes-animation
heygen-com/hyperframes
All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.
prototype
mattpocock/skills
Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.
hyperframes-core
heygen-com/hyperframes
The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.
vercel-react-best-practices
vercel-labs/agent-skills
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.