关于 syncfusion-wpf-color-picker-palette
介绍 Syncfusion WPF ColorPickerPalette 控件的实现,涵盖颜色来源、选择模式、自定义和选择交互,适用于需要可视化颜色输入的应用。
主要功能
- 01主题、标准、自定义和最近使用的颜色
- 02下拉、调色板和拆分模式
- 03面板、尺寸与图标设置
- 04选择事件与命令绑定
- 05支持 RTL 和键盘导航
- 06透明色与更多颜色选项
适用场景
- 01将所选颜色应用于文本格式
- 02为形状填充选择自定义品牌色
- 03显示主题颜色变体
- 04快速重用最近选择的颜色
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ syncfusion/ wpf-ui-components-skills --skill syncfusion-wpf-color-picker-palette安装后在 Claude Code 中输入/syncfusion-wpf-color-picker-palette确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/appearance-customization.mdcolor-management.mdevents-interactions.mdgetting-started.md详细介绍
实现 WPF ColorPickerPalette
ColorPickerPalette 是一款功能丰富的颜色选择控件,提供可视化调色板界面,包含主题色、标准色、自定义颜色和扩展颜色选项。当你需要实现支持灵活自定义的颜色选择功能时,可使用此技能。
适用场景
在以下情况下使用 ColorPickerPalette:
- 允许用户从预定义调色板(主题色、标准色、自定义颜色)中选择颜色
- 显示最近使用的颜色
- 提供“更多颜色”选项,支持扩展选择
- 自定义颜色面板及其可见性
- 处理颜色选择事件
- 支持 RTL 流向
- 启用透明色或“无颜色”选项
组件概述
ColorPickerPalette 提供:
- 多种颜色来源: 主题色、标准色、自定义颜色、最近使用的颜色
- 灵活的模式: 下拉(默认)、调色板(展开)、拆分(按钮 + 下拉)
- 丰富的自定义选项: 面板可见性、尺寸、图标、标题、主题
- 事件支持: SelectedBrushChanged 事件和 SelectedCommand 绑定
- 无障碍支持: 工具提示支持、键盘导航、RTL 支持
文档导航指南
入门
📄 阅读: references/getting-started.md
- 安装和程序集引用
- 通过设计器、XAML 和 C# 添加 ColorPickerPalette
- 控件结构和关键属性
- 以编程方式设置初始颜色
- 主题和本地化支持
颜色管理
📄 阅读: references/color-management.md
- 以编程方式访问和更改颜色
- 使用颜色画刷
- 自动颜色默认值
- 透明色选择
- 主题色变体和标准色
- 自定义颜色集合
- 最近使用的颜色面板
外观与自定义
📄 阅读: references/appearance-customization.md
- 流向(RTL)支持
- 面板可见性选项(主题色、标准色、自定义颜色、最近使用的颜色)
- 显示模式(Dropdown、Palette、Split)
- 调整颜色项和调色板的大小
- 自定义图标及其尺寸
- 自定义标题模板
事件与交互
📄 阅读: references/events-interactions.md
- 处理 SelectedBrushChanged 事件
- SelectedCommand 绑定模式
- “无颜色”按钮功能
- 颜色名称的工具提示支持
- “更多颜色”窗口交互
- 自定义标题模板
快速入门示例
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:syncfusion="http://schemas.syncfusion.com/wpf"
Title="ColorPickerPalette Sample">
<Grid>
<syncfusion:ColorPickerPalette x:Name="colorPickerPalette"
Color="Red"
GenerateThemeVariants="True"
GenerateStandardVariants="True"
RecentlyUsedPanelVisibility="Visible"
Width="60"
Height="40" />
</Grid>
</Window>
C# 代码隐藏文件:
using Syncfusion.Windows.Tools.Controls;
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
// Handle color selection
colorPickerPalette.SelectedBrushChanged += ColorPickerPalette_SelectedBrushChanged;
}
private void ColorPickerPalette_SelectedBrushChanged(object sender, SelectedBrushChangedEventArgs e) {
var newColor = e.NewColor;
var newBrush = e.NewBrush;
// Apply color to UI elements
}
}
常见模式
- 颜色面板自定义: 设置
ThemePanelVisibility、StandardPanelVisibility、RecentlyUsedPanelVisibility、MoreColorOptionVisibility,以控制显示哪些面板 - 自定义颜色集合: 将
CustomColorsCollection属性绑定到ObservableCollection<CustomColor>,并设置SetCustomColors="True" - 带命令的拆分模式: 设置
Mode="Split"并绑定SelectedCommand,以实现按钮行为和下拉访问 - 展开的调色板模式: 设置
Mode="Palette",使调色板始终可见;调整BorderWidth/BorderHeight以设置颜色项的尺寸
完整示例请参阅 appearance-customization.md 和 events-interactions.md。
主要属性
| 属性 | 类型 | 用途 |
|---|---|---|
Color | Color | 获取/设置所选颜色(默认值:Black) |
SelectedBrush | Brush | 获取/设置所选画刷 |
Mode | PickerMode | 下拉、调色板或拆分模式 |
Themes | PaletteTheme | Office、Apex、Metro 等 |
GenerateThemeVariants | bool | 显示/隐藏主题颜色变体 |
GenerateStandardVariants | bool | 显示/隐藏标准颜色变体 |
CustomColorsCollection | ObservableCollection<CustomColor> | 自定义颜色项 |
SetCustomColors | bool | 启用自定义颜色显示 |
BorderWidth / BorderHeight | double | 颜色项尺寸 |
PopupWidth / PopupHeight | double | 调色板弹出窗口大小 |
RecentlyUsedPanelVisibility | Visibility | 显示最近选择的颜色 |
ThemePanelVisibility | Visibility | 显示主题颜色 |
StandardPanelVisibility | Visibility | 显示标准颜色 |
MoreColorOptionVisibility | Visibility | 显示“更多颜色”按钮 |
NoColorVisibility | Visibility | 显示透明/无颜色按钮 |
AutomaticColor | Color | 默认重置颜色 |
常见用例
- 文本颜色选择器: 使用下拉模式搭配标准/主题颜色,并通过
SelectedBrushChanged应用格式 - 形状填充选择器: 使用拆分模式搭配自定义品牌颜色,并绑定
SelectedCommand - 主题颜色选择器: 使用调色板模式,并设置
GenerateThemeVariants="True"以显示颜色变体 - 颜色历史面板: 启用
RecentlyUsedPanelVisibility="Visible",以便快速访问最近使用的颜色
后续步骤
- 从基础开始: 阅读 getting-started.md,设置 ColorPickerPalette
- 自定义颜色: 使用 color-management.md 管理颜色来源
- 设置控件样式: 应用 appearance-customization.md 中的自定义设置
- 处理交互: 根据 events-interactions.md 实现事件处理
评论
支持 Markdown