SuperAPI AI 工具集

syncfusion-winui-linear-gauge

数据与分析

查看项目

更新于 10-16 02:06

技能介绍

用途

Syncfusion WinUI Linear Gauge(SfLinearGauge)是一个多用途数据可视化控件,用于在 Windows 桌面应用(WinUI 3)中,将数值显示在水平或垂直的线性刻度上。它适合构建仪表盘、进度指示器,以及温度、压力、速度等测量值的展示界面。

主要能力

  • 方向:支持水平或垂直布局。
  • 轴自定义:可配置最小值、最大值、标签间隔、标签格式、标签位置(内/外)、标签偏移、刻度(主/次刻度、每间隔次刻度数、刻度位置与长度)、轴方向反转(IsInversed)、镜像轴(IsMirrored)、轴线条样式与可见性,以及自定义刻度范围(如对数刻度)。
  • 范围(Ranges):可设置起止值、宽度(StartWidth、MidWidth、EndWidth)、背景色、渐变画刷、位置(内/外/跨轴),并可用范围颜色作用于轴元素,支持范围子内容。
  • 三种指针类型:
    • 条形指针(Bar Pointer):从起点到当前值的填充条,支持背景色、粗细、圆角样式、偏移、渐变停靠点与子内容。
    • 形状指针(Shape Pointer):内置形状(圆形、菱形、三角形、倒三角、矩形)或自定义模板,支持填充、描边、阴影、尺寸、锚点与偏移。
    • 内容指针(Content Pointer):在数值位置显示自定义内容(文本、图片、图标等)。
  • 多指针:可在同一刻度上添加多个指针以显示不同数值。
  • 动画:指针过渡动画,可配置时长与缓动函数。
  • 交互:形状指针可拖动(IsInteractive),并提供 ValueChangeStarted、ValueChanging、ValueChanged、ValueChangeCompleted 事件。
  • 数据绑定:Value 属性支持 MVVM 绑定。

使用方式

  1. 创建 WinUI 3 桌面应用,安装 Syncfusion.Gauge.WinUI NuGet 包。
  2. 在 XAML 中引入命名空间:xmlns:gauge="using:Syncfusion.UI.Xaml.Gauges";或在 C# 中 using Syncfusion.UI.Xaml.Gauges;。
  3. 在 XAML 或代码中创建 SfLinearGauge,配置 Axis(LinearAxis)的 Minimum、Maximum、Interval,并添加 BarPointers、MarkerPointers(形状与内容指针)和 Ranges。

最小 XAML 示例:

<Window
    x:Class="GaugeApp.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:gauge="using:Syncfusion.UI.Xaml.Gauges">
    <Grid>
        <gauge:SfLinearGauge>
            <gauge:SfLinearGauge.Axis>
                <gauge:LinearAxis Minimum="0"
                                  Maximum="100"
                                  Interval="10">
                    <gauge:LinearAxis.BarPointers>
                        <gauge:BarPointer Value="60" />
                    </gauge:LinearAxis.BarPointers>
                </gauge:LinearAxis>
            </gauge:SfLinearGauge.Axis>
        </gauge:SfLinearGauge>
    </Grid>
</Window>

C# 方式:

using Syncfusion.UI.Xaml.Gauges;

namespace GaugeApp
{
    public sealed partial class MainWindow : Window
    {
        public MainWindow()
        {
            this.InitializeComponent();
            
            SfLinearGauge sfLinearGauge = new SfLinearGauge();
            sfLinearGauge.Axis.Minimum = 0;
            sfLinearGauge.Axis.Maximum = 100;
            sfLinearGauge.Axis.Interval = 10;
            
            BarPointer barPointer = new BarPointer();
            barPointer.Value = 60;
            sfLinearGauge.Axis.BarPointers.Add(barPointer);
            
            this.Content = sfLinearGauge;
        }
    }
}

更新指针值并启用动画:

barPointer.Value = 75;
barPointer.EnableAnimation = true;
barPointer.AnimationDuration = 1000; // 1 second
barPointer.Value = 90;

适用场景

  • 仪表盘中的温度、压力、速度等测量值显示。
  • 带视觉反馈与颜色分段的进度指示器。
  • 需要多指针标记当前值与阈值的场景。
  • 需要用户拖动指针输入数值的交互式仪表。
  • 需要排查仪表渲染、指针定位或交互问题的场景。

限制

资料未提供关于授权、收费、价格、平台兼容版本、性能上限或已知缺陷的明确说明,这些信息暂未提供。