skills/syncfusion/winui-ui-components-skills/syncfusion-winui-dropdown-color-picker

syncfusion-winui-dropdown-color-picker

SKILL.md

Implementing Syncfusion WinUI DropDown Color Picker

The WinUI DropDown Color Picker (SfDropDownColorPicker) is a versatile control for color selection and editing. It displays a color spectrum as a dropdown button with support for multiple color channel modes, opacity adjustment, and extensive customization options.

When to Use This Skill

  • User needs: Interactive color selection UI with dropdown behavior
  • User needs: Support for multiple color formats (RGB, HSV, HSL, CMYK, Hexadecimal)
  • User needs: Customizable dropdown placement and split button mode
  • User needs: Embedded color picker customization within a dropdown
  • User needs: Color change event handling and color binding
  • User needs: Custom header UI or dropdown button styling

Component Overview

Key Features

  • Color Editing: Drag to select colors or enter values manually in RGB, HSV, HSL, CMYK, or Hex formats
  • Hue Spectrum Slider: Quickly select hue values
  • Color Channel Modes: Switch between RGB, HSV, HSL, and CMYK color spaces
  • Split Mode: Optional button + dropdown arrow separation
  • Dropdown Customization: Control placement (full, center, left, right, top, bottom)
  • Opacity Control: Adjust alpha/transparency values
  • Event Handling: SelectedBrushChanged, DropDownOpened, DropDownClosed events
  • Custom Templates: Customize header and dropdown button UI

Required NuGet Package

  • Syncfusion.Editors.WinUI

Note: Ensure you update the Syncfusion.Editors.WinUI NuGet package to the latest available version via the NuGet package manager before building or releasing your application.

Namespace

  • Syncfusion.UI.Xaml.Editors

Documentation and Navigation Guide

Choose the reference guide based on your task:

Getting Started

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

  • Installation and NuGet setup
  • Creating projects with DropDown Color Picker
  • Basic XAML and C# implementation
  • Programmatic color selection
  • Interactive color selection
  • Color channel switching (RGB, HSV, HSL, CMYK)
  • Opacity and alpha value adjustment
  • Hexadecimal color editor usage

Color Picker Customization

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

  • Customizing the embedded color picker
  • Using AttachedFlyout and DropDownFlyout
  • Brush type options (SolidColorBrush, LinearGradientBrush, etc.)
  • Size and appearance customization
  • Embedded color picker examples

Dropdown Modes and Placement

πŸ“„ Read: references/dropdown-modes-and-placement.md

  • Dropdown placement modes
  • DropDownPlacement property usage
  • Split mode (button + dropdown arrow)
  • Command binding in split mode
  • Dropdown vs. full dropdown behavior
  • Custom header UI styling

Events and Commands

πŸ“„ Read: references/events-and-commands.md

  • SelectedBrushChanged event
  • OldBrush and NewBrush properties
  • DropDownOpened and DropDownClosed events
  • Command binding patterns
  • Event handling code examples

Header and UI Customization

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

  • ContentTemplate for selected color button
  • DropDownButtonTemplate for dropdown button
  • Custom UI styling in XAML
  • Split mode custom headers
  • DataContext binding patterns
  • Complete template examples

Quick Start Example

Basic Implementation (XAML)

<Page xmlns:editors="using:Syncfusion.UI.Xaml.Editors">
    <Grid>
        <editors:SfDropDownColorPicker x:Name="colorPicker" 
                                       SelectedBrush="Blue" />
    </Grid>
</Page>

Basic Implementation (C#)

using Syncfusion.UI.Xaml.Editors;

public sealed partial class MainPage : Page
{
    public MainPage()
    {
        this.InitializeComponent();
        
        SfDropDownColorPicker colorPicker = new SfDropDownColorPicker();
        colorPicker.SelectedBrush = new SolidColorBrush(Colors.Blue);
        
        grid.Children.Add(colorPicker);
    }
}

Listening to Color Changes

// Subscribe to color change event
colorPicker.SelectedBrushChanged += ColorPicker_SelectedBrushChanged;

private void ColorPicker_SelectedBrushChanged(object sender, SelectedBrushChangedEventArgs e)
{
    var oldColor = e.OldBrush;
    var newColor = e.NewBrush;
    
    // Apply the selected color
    myElement.Background = newColor;
}

Common Use Cases

1. Theme Color Selector

Allow users to select application theme colors:

// User selects a color β†’ apply to app background
SfDropDownColorPicker themeColorPicker = new SfDropDownColorPicker();
themeColorPicker.SelectedBrushChanged += (s, e) => 
{
    Window.Current.Content.Background = e.NewBrush;
};

2. Split Button Mode for Direct Application

Apply last selected color with button click, open dropdown to change:

<editors:SfDropDownColorPicker DropDownMode="Split"
                               Command="{x:Bind ApplyColorCommand}" />

3. Custom Color Editor Interface

Embed specific color picker configuration:

<editors:SfDropDownColorPicker>
    <FlyoutBase.AttachedFlyout>
        <editors:DropDownFlyout>
            <editors:SfColorPicker BrushTypeOptions="LinearGradientBrush" 
                                   Width="250" />
        </editors:DropDownFlyout>
    </FlyoutBase.AttachedFlyout>
</editors:SfDropDownColorPicker>

4. Positioned Dropdown (Top-Right)

Control where the color picker opens:

<editors:SfDropDownColorPicker DropDownPlacement="TopEdgeAlignedRight" />

Key Properties

Property Type Purpose Common Values
SelectedBrush Brush Currently selected color Colors.Blue, new SolidColorBrush()
DropDownMode enum Dropdown behavior Dropdown, Split
DropDownPlacement FlyoutPlacementMode Position of dropdown Full, Top, Bottom, Left, Right
Command ICommand Command triggered on button click Custom ICommand implementation

Common Patterns

Pattern 1: Color Binding to UI Element

// When color is selected, immediately apply to target element
void ColorPicker_SelectedBrushChanged(object sender, SelectedBrushChangedEventArgs e)
{
    targetRectangle.Fill = e.NewBrush;
}

Pattern 2: Validating Color Selection

void ColorPicker_SelectedBrushChanged(object sender, SelectedBrushChangedEventArgs e)
{
    // Validate color meets requirements
    if (IsValidColor(e.NewBrush))
    {
        ApplyColor(e.NewBrush);
    }
    else
    {
        colorPicker.SelectedBrush = e.OldBrush; // Revert
    }
}

Pattern 3: Split Mode with Custom Command

public ICommand QuickApplyCommand => new RelayCommand(() =>
{
    // Apply current selected color without opening dropdown
    ApplySelectedColorToTextSelection();
});

Next Steps

  • Start with: getting-started.md to set up basic DropDown Color Picker
  • Then explore: Other reference guides based on your specific needs
  • For production: Review all guides for complete customization capabilities
Weekly Installs
1
First Seen
1 day ago
Installed on
amp1
cline1
opencode1
cursor1
continue1
kimi-cli1