mcpField
S
syncfusion-winui-pyramid-chart

syncfusion-winui-pyramid-chart

github.com/syncfusion设计与 UI148 次安装1 周前更新
代码仓库

关于 syncfusion-winui-pyramid-chart

为使用 Syncfusion WinUI 的开发者提供 SfPyramidChart 实现指南,涵盖比例与层级数据的金字塔可视化。内容包括数据绑定、外观、图例和交互配置。

主要功能

  1. 01配置 SfPyramidChart 与数据绑定
  2. 02自定义调色板、渐变和样式
  3. 03设置图例与数据标签
  4. 04配置提示、选择和分段突出显示
  5. 05调整标题、间距和渲染模式

适用场景

  1. 01展示营养层级或人口分布
  2. 02呈现销售漏斗阶段
  3. 03比较市场细分或成本类别

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/syncfusion/winui-ui-components-skills --skill syncfusion-winui-pyramid-chart

安装后在 Claude Code 中输入/syncfusion-winui-pyramid-chart确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
advanced-features.md
appearance.md
data-labels.md
exploding-segments.md
getting-started.md
legend.md
selection.md
tooltip.md

详细介绍

实现 Syncfusion WinUI 金字塔图表

Syncfusion WinUI 金字塔图表(SfPyramidChart)是一种专用控件,用于以层级结构展示整体中的各项占比。它以金字塔结构显示数据,每个分段代表一个数据点,因此非常适合展示层级关系和占比比较。

何时使用此技能

在用户需要执行以下操作时使用此技能:

  • 创建金字塔可视化效果 - 以金字塔结构展示层级数据或占比数据
  • 设置 WinUI 金字塔图表 - 安装、配置并初始化 SfPyramidChart 控件
  • 将数据绑定到金字塔图表 - 配置 ItemsSource、XBindingPath、YBindingPath 以进行数据绑定
  • 自定义外观 - 为金字塔分段应用颜色、调色板、渐变或自定义样式
  • 添加交互功能 - 启用工具提示、选择或分段分离功能,供用户交互
  • 配置图例 - 添加图表图例,并自定义其图标、标题和位置
  • 显示数据标签 - 在金字塔分段上显示值或标签
  • 高级自定义 - 配置标题、分段间距、渲染模式或模板

组件概览

SfPyramidChart 控件提供:

  • 层级可视化 - 以金字塔形状展示占比数据
  • 丰富的数据绑定功能 - 支持 XAML 和代码隐藏中的数据绑定
  • 交互功能 - 工具提示、选择和分段分离
  • 丰富的自定义选项 - 调色板、渐变、模板和样式
  • 图例支持 - 提供多种位置选项的可配置图例
  • 无障碍功能 - 内置键盘导航和屏幕阅读器支持

文档与导航指南

入门

📄 阅读: references/getting-started.md

适用于以下需求:

  • 安装和设置 NuGet 包(Syncfusion.Chart.WinUI)
  • 导入命名空间(Syncfusion.UI.Xaml.Charts)
  • 在 XAML 或 C# 中初始化基本的 SfPyramidChart
  • 创建视图模型并设置数据绑定模式
  • 使用 ItemsSource、XBindingPath、YBindingPath 的完整可运行示例
  • 首次实现一个金字塔图表
外观与样式

📄 阅读: references/appearance.md

适用于以下需求:

  • 预定义调色板画刷
  • 配置自定义 PaletteBrushes
  • 为分段应用线性或径向渐变
  • 自定义颜色和视觉样式
  • 创建美观的配色方案
图例配置

📄 阅读: references/legend.md

适用于以下需求:

  • 启用并定位 ChartLegend
  • 添加图例标题(Header 属性)
  • 自定义图例图标(大小、可见性)
  • 配置项目间距和布局
  • 为图例项目添加复选框
  • 实现系列可见性切换
  • 自定义图例背景和边框
  • 创建自定义图例模板
数据标签

📄 阅读: references/data-labels.md

适用于以下需求:

  • 启用金字塔分段上的数据标签
  • 定位和设置标签格式
  • 创建自定义标签模板
  • 智能标签定位策略
  • 标签可见性和样式
工具提示

📄 阅读: references/tooltip.md

适用于以下需求:

  • 启用工具提示(EnableTooltip 属性)
  • 自定义工具提示外观
  • 创建自定义工具提示模板
  • 设置工具提示内容格式
  • 交互式工具提示行为
选择

📄 阅读: references/selection.md

适用于以下需求:

  • 启用分段选择
  • 配置选择模式
  • 处理选择事件
  • 为选中的分段提供视觉反馈
  • 多选场景
爆炸分段

📄 阅读: references/exploding-segments.md

适用于以下需求:

  • 在触摸/点击时爆炸分段
  • 以编程方式爆炸分段
  • 配置 ExplodeIndex 属性
  • 设置 ExplodeRadius 以指定爆炸距离
  • 为爆炸分段添加动画和视觉效果
高级功能

📄 阅读: references/advanced-features.md

适用于以下需求:

  • 添加图表标题和表头
  • 配置分段间距(GapRatio)
  • 设置渲染模式
  • 调整金字塔高度和模式属性
  • 优化性能
  • 高级自定义场景

快速入门示例

基本金字塔图表实现

XAML:

<Window
    x:Class="PyramidChartApp.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:chart="using:Syncfusion.UI.Xaml.Charts"
    xmlns:local="using:PyramidChartApp">
    
    <chart:SfPyramidChart x:Name="chart"
                          Header="Food Nutrition Pyramid"
                          ItemsSource="{Binding Data}"
                          XBindingPath="FoodName"
                          YBindingPath="Calories"
                          EnableTooltip="True"
                          ShowDataLabels="True">
        
        <chart:SfPyramidChart.DataContext>
            <local:ChartViewModel/>
        </chart:SfPyramidChart.DataContext>
        
        <chart:SfPyramidChart.Legend>
            <chart:ChartLegend/>
        </chart:SfPyramidChart.Legend>
        
    </chart:SfPyramidChart>
</Window>

视图模型(C#):

public class Model
{
    public string FoodName { get; set; }
    public double Calories { get; set; }
}

public class ChartViewModel
{
    public List<Model> Data { get; set; }
    
    public ChartViewModel()
    {
        Data = new List<Model>()
        {
            new Model { FoodName = "Sweet treats", Calories = 250 },
            new Model { FoodName = "Cheese", Calories = 402 },
            new Model { FoodName = "Vegetables", Calories = 65 },
            new Model { FoodName = "Fish", Calories = 206 },
            new Model { FoodName = "Fruits", Calories = 52 },
            new Model { FoodName = "Rice", Calories = 130 }
        };
    }
}

代码隐藏(C#):

using Syncfusion.UI.Xaml.Charts;
using Microsoft.UI.Xaml;

public sealed partial class MainWindow : Window
{
    public MainWindow()
    {
        this.InitializeComponent();
        
        // Alternative: Create chart programmatically
        SfPyramidChart chart = new SfPyramidChart();
        ChartViewModel viewModel = new ChartViewModel();
        chart.DataContext = viewModel;
        chart.SetBinding(SfPyramidChart.ItemsSourceProperty, 
            new Binding() { Path = new PropertyPath("Data") });
        chart.XBindingPath = "FoodName";
        chart.YBindingPath = "Calories";
        chart.Header = "Food Nutrition Pyramid";
        chart.Legend = new ChartLegend();
        chart.EnableTooltip = true;
        chart.ShowDataLabels = true;
        
        this.Content = chart;
    }
}

常见模式

模式 1:自定义调色板
<Grid>
    <Grid.Resources>
        <BrushCollection x:Key="customColors">
            <SolidColorBrush Color="#4dd0e1"/>
            <SolidColorBrush Color="#26c6da"/>
            <SolidColorBrush Color="#00bcd4"/>
            <SolidColorBrush Color="#00acc1"/>
            <SolidColorBrush Color="#0097a7"/>
        </BrushCollection>
    </Grid.Resources>
    
    <chart:SfPyramidChart Palette="Custom"
                          PaletteBrushes="{StaticResource customColors}"
                          ItemsSource="{Binding Data}"
                          XBindingPath="Category"
                          YBindingPath="Value"/>
</Grid>
模式 2:带选择功能的交互式金字塔
<chart:SfPyramidChart ItemsSource="{Binding Data}"
                      XBindingPath="Category"
                      YBindingPath="Value"
                      SelectionBehavior="SelectSingle">
    
    <chart:SfPyramidChart.SelectionBrush>
        <SolidColorBrush Color="#FF6B6B"/>
    </chart:SfPyramidChart.SelectionBrush>
    
</chart:SfPyramidChart>
模式 3:点击时爆炸分段
<chart:SfPyramidChart ItemsSource="{Binding Data}"
                      XBindingPath="Category"
                      YBindingPath="Value"
                      ExplodeOnClick="True"
                      ExplodeRadius="10"/>
模式 4:渐变样式的金字塔
<Grid>
    <Grid.Resources>
        <BrushCollection x:Key="gradientColors">
            <LinearGradientBrush>
                <GradientStop Offset="1" Color="#FFE7C7"/>
                <GradientStop Offset="0" Color="#FCB69F"/>
            </LinearGradientBrush>
            <LinearGradientBrush>
                <GradientStop Offset="1" Color="#fadd7d"/>
                <GradientStop Offset="0" Color="#fccc2d"/>
            </LinearGradientBrush>
        </BrushCollection>
    </Grid.Resources>
    
    <chart:SfPyramidChart Palette="Custom"
                          PaletteBrushes="{StaticResource gradientColors}"
                          ItemsSource="{Binding Data}"
                          XBindingPath="Category"
                          YBindingPath="Value"/>
</Grid>

关键属性

属性类型描述
ItemsSourceobject金字塔图表的数据源
XBindingPathstringX 轴数据(标签)的属性路径
YBindingPathstringY 轴数据(值)的属性路径
Headerobject图表标题或表头内容
LegendChartLegend图例配置对象
EnableTooltipbool启用/禁用悬停时的工具提示
ShowDataLabelsbool显示/隐藏分段上的数据标签
PaletteChartColorPalette预定义调色板
PaletteBrushesIList自定义颜色集合
ExplodeOnClickbool启用点击时爆炸分段
ExplodeIndexint要爆炸的分段索引
ExplodeRadiusdouble爆炸分段的距离
GapRatiodouble分段间距(0-1)
SelectionBehaviorSelectionBehavior选择模式配置

常见用例

  1. 食物/营养金字塔 - 展示食物类别或营养层级
  2. 销售漏斗 - 将销售流程从潜在客户到转化阶段可视化
  3. 人口统计 - 展示年龄或人口统计分布
  4. 市场细分 - 展示市场份额或客户群体
  5. 成本明细 - 按层级顺序可视化费用类别
  6. 优先级分析 - 按降序展示任务或问题的优先级
  7. 资源分配 - 展示各类别的资源分布

相关技能


后续步骤: 根据具体需求阅读相应的参考文件。初次设置请从 getting-started.md 开始,也可以直接查看特定功能指南,快速实现目标功能。

评论

支持 Markdown