SuperAPI AI 工具集

syncfusion-maui-toolkit-spark-charts

前端与建站

查看项目

更新于 10-16 02:20

技能介绍

概述

本技能用于在 .NET MAUI 应用程序中实现 Syncfusion 的 SfSparkChart 控件。Spark Charts 是轻量级的微型可视化控件,适合在仪表盘、表格和报表等紧凑空间内展示数据趋势。

何时使用

当需要在 .NET MAUI 应用中实现 SfSparkChart 控件时使用本技能。典型场景包括:

  • 在不占用大量 UI 空间的情况下快速展示数据趋势
  • 可视化销售趋势、股票表现或时间序列数据
  • 在胜负(Win/Loss)场景中展示正负值
  • 创建包含多个微型图表的仪表盘组件
  • 高亮特定数据点(首点、末点、最高点、最低点、负值)

四种内置图表类型

SfSparkChart 是紧凑型图表控件,包含四种内置图表类型:

  • SparkLineChart:基于折线的可视化,适合识别趋势和模式
  • SparkAreaChart:填充面积可视化,适合强调变化幅度
  • SparkColumnChart:垂直柱状可视化,适合比较不同数据值
  • SparkWinLossChart:胜负表示,适合展示正负场景

核心功能

  • 数据绑定到 ObservableCollection、List 或 IEnumerable
  • 四种图表类型满足不同可视化需求
  • 标记显示与自定义(仅折线图和面积图)
  • 数据点样式设置(首点、末点、最高点、最低点、负值)
  • 轴显示与原点自定义
  • 用于突出数值区间的范围带高亮
  • 针对微型可视化优化的轻量级性能

入门与安装

需要在项目中完成 NuGet 包安装与配置。需在 MauiProgram.cs 中注册处理器。

using Syncfusion.Maui.Toolkit.Hosting;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder();
        builder
            .UseMauiApp<App>()
            .ConfigureSyncfusionToolkit()
            .ConfigureFonts(fonts =>
            {
                fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
            });
        return builder.Build();
    }
}

在 XAML 中创建基础 SparkLineChart:

<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:sparkchart="clr-namespace:Syncfusion.Maui.Toolkit.SparkCharts;assembly=Syncfusion.Maui.Toolkit"
             x:Class="SparkChartDemo.MainPage">

    <sparkchart:SfSparkLineChart 
        ItemsSource="{Binding Data}" 
        YBindingPath="Value"
        ShowMarkers="True"
        HeightRequest="100"
        WidthRequest="150">
    </sparkchart:SfSparkLineChart>

</ContentPage>

从 ViewModel 绑定数据:

public class SparkDataViewModel
{
    public ObservableCollection<DataPoint> Data { get; set; }
    
    public SparkDataViewModel()
    {
        Data = new ObservableCollection<DataPoint>
        {
            new DataPoint { Value = 10 },
            new DataPoint { Value = 15 },
            new DataPoint { Value = 12 },
            new DataPoint { Value = 20 },
            new DataPoint { Value = 18 }
        };
    }
}

public class DataPoint
{
    public double Value { get; set; }
}

文档导航

  • getting-started.md:安装与 NuGet 包设置、项目配置(MauiProgram.cs 处理器注册)、基础 SparkLineChart 实现、命名空间导入与首次渲染、数据绑定设置、可直接复制使用的起始代码
  • chart-types.md:为数据选择合适的图表类型,四种图表类型的代码示例,常见类型选择模式
  • markers-and-labels.md:在折线图和面积图上启用标记,标记形状类型与自定义,标记样式属性(Fill、Stroke、StrokeWidth、Height、Width),标记定位与可见性,常见标记模式(高亮端点与数据点),标记显示的性能考量
  • styling-and-appearance.md:数据点样式与颜色自定义,首点、末点、最高点、最低点高亮,柱状图和胜负图的负值样式,画刷与颜色属性,内边距与间距配置,尺寸自定义与布局控制,高级样式示例
  • data-binding.md:绑定到 ObservableCollection 实现响应式更新,绑定到 List 处理静态数据,绑定到 IEnumerable 处理 LINQ 查询,XBindingPath 与 YBindingPath 配置,动态数据源更新,常见绑定模式与最佳实践
  • axis-and-ranges.md:启用轴显示(ShowAxis 属性),轴原点配置作为基线参考,轴类型(数值、分类、日期时间),用于分类/时间轴的 XBindingPath 属性,范围带可视化(RangeBandStart、RangeBandEnd、RangeBandFill),轴线样式与自定义,突出数值区间与阈值

常见模式

仪表盘摘要卡片:展示快速销售趋势,设置首末点颜色。

<sparkchart:SfSparkLineChart 
    ItemsSource="{Binding MonthlySales}" 
    YBindingPath="Amount"
    ShowMarkers="False"
    FirstPointFill="Blue"
    LastPointFill="Red">
</sparkchart:SfSparkLineChart>

带阈值的性能指标:使用范围带高亮可接受范围内的数据。

<sparkchart:SfSparkLineChart 
    ItemsSource="{Binding PerformanceMetrics}" 
    YBindingPath="Value"
    ShowAxis="True"
    RangeBandStart="50"
    RangeBandEnd="100"
    RangeBandFill="LightGreen">
</sparkchart:SfSparkLineChart>

胜负可视化:

<sparkchart:SfSparkWinLossChart 
    ItemsSource="{Binding GameResults}" 
    YBindingPath="Result"
    NegativePointsFill="Red">
</sparkchart:SfSparkWinLossChart>

样式化数据点:强调关键数据点。

<sparkchart:SfSparkColumnChart 
    ItemsSource="{Binding MonthlyRevenue}" 
    YBindingPath="Revenue"
    FirstPointFill="Green"
    LastPointFill="Blue"
    HighPointFill="Gold"
    LowPointFill="Red"
    NegativePointsFill="DarkRed">
</sparkchart:SfSparkColumnChart>

主要属性参考

核心属性:ItemsSource(IEnumerable,数据源)、YBindingPath(string,Y 轴值属性名)、XBindingPath(string,X 轴值属性名)、Height/Width(double,图表高度/宽度)。

显示属性:ShowMarkers(bool,默认 false,显示标记,仅折线图和面积图)、ShowAxis(bool,默认 false,显示轴基线)、Padding(Thickness,默认 0)、AxisOrigin(double,轴线位置的 Y 轴值)。

样式属性:FirstPointFill、LastPointFill、HighPointFill、LowPointFill、NegativePointsFill(均为 Brush,分别对应首点、末点、最高点、最低点、负值颜色)。

范围带属性:RangeBandStart、RangeBandEnd(double,范围带的 Y 轴起止值)、RangeBandFill(Brush)。

轴属性:AxisType(SparkChartAxisType,默认 Numeric,可选 Numeric、Category、DateTime)、AxisLineStyle(SparkChartLineStyle,包含 Stroke、StrokeWidth、StrokeDashArray)。

标记属性(仅折线图和面积图):MarkerSettings(SparkChartMarkerSettings,标记自定义配置)。

常见问题与解决方案

图表显示为空:检查 ItemsSource 绑定、YBindingPath 匹配、数据源非 null,确保数据属性为公开且包含数值。

标记不显示:确认使用折线图或面积图,设置 ShowMarkers="True",检查 MarkerSettings 中 Height/Width 大于 0。

范围带不可见:确认 RangeBandStart < RangeBandEnd,范围值在数据的 Y 轴范围内,RangeBandFill 非透明。

大数据集性能差:考虑仅显示近期数据点,使用聚合数据,避免大量标记样式,在对性能敏感的场景禁用 ShowMarkers。

限制

资料未提供具体的收费、价格、平台支持范围或授权信息,这些内容暂未提供。