skills/syncfusion/winui-ui-components-skills/syncfusion-winui-color-palette

syncfusion-winui-color-palette

SKILL.md

When to Use This Skill

Use this skill immediately when the user:

  • Needs to implement a color palette (swatch-based) UI in WinUI applications
  • Wants to display theme colors with their variant shades
  • Needs to show standard colors with or without color shade variants
  • Requires adding custom colors to the theme or standard color palette
  • Wants to open a More Colors dialog for extended color selection
  • Needs a "No Color" (transparent) selection option
  • Wants to track recently used colors from the More Colors dialog
  • Needs to set or get the selected color programmatically via SelectedBrush
  • Requires customizing palette headers, header templates, or color shade spacing
  • Needs to change layout flow direction or foreground styling
  • Wants to set an automatic/default color that users can restore easily

This skill is specifically for the Syncfusion WinUI Color Palette control (SfColorPalette), not for gradient-based or spectrum-based color pickers.

Component Overview

The SfColorPalette is a WinUI control that provides a swatch-based color selection interface. It supports:

  • Theme Colors: Built-in palette themes (Office, Yellow, Green, etc.) with variant shades
  • Standard Colors: Fixed set of standard colors with optional shade variants
  • Custom Colors: Add your own colors to theme or standard palettes
  • More Colors Dialog: Extended selection via color spectrum with opacity control
  • Recent Colors: Tracks colors selected from the More Colors dialog
  • Automatic Color: Default/automatic color button with configurable color
  • No Color Option: Transparent color selection button
  • Tooltip Support: Color name shown on hover
  • Programmatic Access: Get/set selected color via SelectedBrush
  • Event Notifications: SelectedBrushChanged for real-time change detection

Key Namespace:

using Syncfusion.UI.Xaml.Editors;

NuGet Package:

Syncfusion.Editors.WinUI

Documentation and Navigation Guide

Getting Started with SfColorPalette

πŸ“„ Read: references/getting-started.md

Read this reference when you need:

  • Installation and NuGet package setup instructions
  • Basic SfColorPalette control implementation
  • Namespace and assembly references
  • Accessing and setting selected color programmatically
  • Handling the SelectedBrushChanged event
  • Showing/hiding No Color button
  • First working XAML + C# example with minimal configuration

Topics covered:

  • Creating a WinUI 3 desktop application
  • Adding Syncfusion.Editors.WinUI NuGet package
  • Importing the control namespace
  • Basic XAML and C# initialization
  • SelectedBrush property (get/set)
  • SelectedBrushChanged event handling
  • ShowNoColorButton property
  • ShowMoreColorsButton property
  • RecentColors collection
  • Control structure overview

Theme Colors

πŸ“„ Read: references/theme-colors.md

Read this reference when you need:

  • Selecting colors from built-in theme palettes
  • Switching the active theme palette at runtime
  • Adding custom colors to the theme palette
  • Showing or hiding base theme colors
  • Showing or hiding theme color variant shades
  • Customizing the theme palette header text or template
  • Hiding the theme palette header
  • Adjusting spacing between base colors and their variants

Topics covered:

  • ActivePalette property and available ColorPaletteNames
  • PaletteColors property (ColorPaletteModel)
  • PaletteColors.ShowColors β€” show/hide base theme colors
  • PaletteColors.ShowColorShades β€” show/hide variant shades
  • PaletteColors.Colors β€” adding custom ColorModel entries
  • PaletteColors.Header β€” custom header text
  • PaletteColors.ShowHeader β€” header visibility
  • PaletteColors.HeaderTemplate β€” custom header UI
  • PaletteColors.ColorShadesSpacing β€” variant spacing
  • Hiding the entire theme palette

Standard Colors

πŸ“„ Read: references/standard-colors.md

Read this reference when you need:

  • Selecting colors from the built-in standard colors panel
  • Adding custom colors to the standard color palette
  • Showing or hiding standard color variant shades
  • Hiding the standard colors panel entirely
  • Customizing the standard palette header text or template
  • Hiding the standard palette header
  • Adjusting spacing between standard colors and their variants

Topics covered:

  • StandardColors property (StandardPaletteModel)
  • StandardColors.ShowColors β€” show/hide standard colors
  • StandardColors.ShowColorShades β€” show/hide variant shades
  • StandardColors.Colors β€” adding custom ColorModel entries
  • StandardColors.Header β€” custom header text
  • StandardColors.ShowHeader β€” header visibility
  • StandardColors.HeaderTemplate β€” custom header UI
  • StandardColors.ColorShadesSpacing β€” variant spacing
  • Hiding the entire standard colors panel

More Color Dialog

πŸ“„ Read: references/more-color-dialog.md

Read this reference when you need:

  • Enabling or disabling the More Colors button
  • Understanding how the More Colors dialog works
  • Hiding the More Colors option to restrict color choices

Topics covered:

  • ShowMoreColorsButton property
  • Selecting custom colors from the color spectrum dialog
  • Hiding the More Colors button

UI Customization

πŸ“„ Read: references/ui-customization.md

Read this reference when you need:

  • Setting or getting the selected color programmatically
  • Setting a null/transparent color value
  • Configuring the automatic (default) color button
  • Hiding the default color button
  • Customizing palette header foreground color
  • Changing flow direction (right-to-left support)
  • Understanding tooltip behavior for color items
  • Working with recently used colors panel

Topics covered:

  • SelectedBrush property (programmatic access)
  • Setting null/transparent color (Colors.Transparent)
  • AutomaticBrush property β€” default color configuration
  • ShowDefaultColorButton property β€” default color button visibility
  • Foreground property β€” header text color
  • FlowDirection property β€” RTL support
  • Tooltip behavior for color items
  • RecentColors collection β€” recently used colors

Best Practices and Troubleshooting

πŸ“„ Read: references/best-practices.md

Read this reference when you need:

  • Guidance on when to use SfColorPalette vs SfColorPicker
  • Common implementation patterns and use cases
  • Troubleshooting color selection or display issues
  • Understanding edge cases and limitations
  • Accessibility considerations
  • Integration with flyouts, dialogs, and property panels

Topics covered:

  • When to use palette vs picker
  • Common use cases (theme selector, document editor, drawing tool)
  • Troubleshooting guide
  • Edge cases to avoid
  • Accessibility best practices
  • Integration patterns (flyout, dialog, property panel)

Quick Start Example

Here's a minimal example to get started with SfColorPalette:

XAML Implementation

<Page
    x:Class="ColorPaletteApp.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:editors="using:Syncfusion.UI.Xaml.Editors">

    <Grid Padding="20">
        <!-- Basic Color Palette -->
        <editors:SfColorPalette 
            x:Name="colorPalette"
            ShowMoreColorsButton="True"
            ShowNoColorButton="True"
            SelectedBrushChanged="ColorPalette_SelectedBrushChanged" />
    </Grid>
</Page>

C# Code-Behind

using Syncfusion.UI.Xaml.Editors;
using Microsoft.UI.Xaml.Media;
using Windows.UI;

namespace ColorPaletteApp
{
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
        }

        private void ColorPalette_SelectedBrushChanged(object sender, SelectedBrushChangedEventArgs e)
        {
            var oldBrush = e.OldBrush;
            var newBrush = e.NewBrush;

            // Apply selected color to a target element
            if (newBrush is SolidColorBrush solidBrush)
            {
                targetRectangle.Fill = solidBrush;
            }
        }
    }
}

Common Patterns

Pattern 1: Basic Palette with Theme and Standard Colors

<editors:SfColorPalette Name="colorPalette">
    <editors:SfColorPalette.PaletteColors>
        <editors:ColorPaletteModel ShowColorShades="True"/>
    </editors:SfColorPalette.PaletteColors>
    <editors:SfColorPalette.StandardColors>
        <editors:StandardPaletteModel ShowColorShades="True"/>
    </editors:SfColorPalette.StandardColors>
</editors:SfColorPalette>

Pattern 2: Active Palette (Theme Switching)

<!-- Show "Yellow" theme colors by default -->
<editors:SfColorPalette ActivePalette="Yellow" Name="colorPalette" />
// Switch theme programmatically
colorPalette.ActivePalette = ColorPaletteNames.Office;

Pattern 3: Custom Theme and Standard Colors

<editors:SfColorPalette Name="colorPalette">
    <editors:SfColorPalette.PaletteColors>
        <editors:ColorPaletteModel ShowColors="True" ShowColorShades="True" Header="Brand Colors">
            <editors:ColorPaletteModel.Colors>
                <editors:ColorCollection>
                    <editors:ColorModel Color="#FF1464A0" Tooltip="Brand Blue" />
                    <editors:ColorModel Color="#FF00A651" Tooltip="Brand Green" />
                    <editors:ColorModel Color="#FFFF6600" Tooltip="Brand Orange" />
                </editors:ColorCollection>
            </editors:ColorPaletteModel.Colors>
        </editors:ColorPaletteModel>
    </editors:SfColorPalette.PaletteColors>
</editors:SfColorPalette>

Pattern 4: Programmatic Color Selection

// Set selected color
colorPalette.SelectedBrush = new SolidColorBrush(Colors.Yellow);

// Set transparent/no color
colorPalette.SelectedBrush = new SolidColorBrush(Colors.Transparent);

// Read selected color
if (colorPalette.SelectedBrush is SolidColorBrush brush)
{
    var color = brush.Color;
}

Pattern 5: Enable All Options

<editors:SfColorPalette 
    ShowMoreColorsButton="True"
    ShowNoColorButton="True"
    AutomaticBrush="Black"
    ShowDefaultColorButton="True"
    Name="colorPalette" />

Key Properties Reference

Property Type Default Purpose
SelectedBrush Brush Transparent Gets or sets the currently selected color
ActivePalette ColorPaletteNames Office Sets the active built-in theme palette
PaletteColors ColorPaletteModel β€” Configures theme color panel
StandardColors StandardPaletteModel β€” Configures standard color panel
ShowMoreColorsButton bool true Shows/hides the More Colors button
ShowNoColorButton bool false Shows/hides the No Color (transparent) button
AutomaticBrush Brush Black Sets the default/automatic color
ShowDefaultColorButton bool true Shows/hides the default color button
RecentColors Collection β€” Gets the recently used colors list
Foreground Brush Black Sets header text foreground color
FlowDirection FlowDirection LeftToRight Sets RTL/LTR layout direction

ColorPaletteModel / StandardPaletteModel Properties:

Property Type Default Purpose
ShowColors bool true Shows/hides base colors
ShowColorShades bool true/false Shows/hides variant shades
Colors ColorCollection β€” Custom color entries
Header string "Theme Colors" / "Standard Colors" Panel header text
ShowHeader bool true Shows/hides the header
HeaderTemplate DataTemplate β€” Custom header UI
ColorShadesSpacing double 10 Space between base color and shades

Key Events

Event Args Purpose
SelectedBrushChanged SelectedBrushChangedEventArgs Fired when selected color changes

Event Args Properties:

  • OldBrush β€” Previously selected brush
  • NewBrush β€” Newly selected brush

Common Use Cases

  1. Document Editor β€” Font and highlight color selection (like MS Word color palette)
  2. Theme Customizer β€” Let users pick from brand or theme colors
  3. Drawing/Annotation Tool β€” Color picker for pen, highlighter, or shape fill
  4. Form Design Tool β€” Background and text color selection for form elements
  5. Dashboard Builder β€” Widget color assignment from a predefined palette

Next Steps

  1. Start Simple: Begin with getting-started.md for basic setup
  2. Theme Colors: Customize palette themes using theme-colors.md
  3. Standard Colors: Configure standard color panel via standard-colors.md
  4. More Colors: Add extended color dialog using more-color-dialog.md
  5. Customize UI: Apply visual customizations from ui-customization.md
  6. Optimize: Review best-practices.md for production-ready implementation

Note: This skill focuses on the Syncfusion WinUI Color Palette control (SfColorPalette). For gradient/spectrum-based color picking, refer to the syncfusion-winui-colorpicker skill.

Weekly Installs
6
First Seen
1 day ago
Installed on
opencode6
gemini-cli6
deepagents6
antigravity6
github-copilot6
codex6