用途
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 绑定。
使用方式
- 创建 WinUI 3 桌面应用,安装 Syncfusion.Gauge.WinUI NuGet 包。
- 在 XAML 中引入命名空间:
xmlns:gauge="using:Syncfusion.UI.Xaml.Gauges";或在 C# 中using Syncfusion.UI.Xaml.Gauges;。 - 在 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;
适用场景
- 仪表盘中的温度、压力、速度等测量值显示。
- 带视觉反馈与颜色分段的进度指示器。
- 需要多指针标记当前值与阈值的场景。
- 需要用户拖动指针输入数值的交互式仪表。
- 需要排查仪表渲染、指针定位或交互问题的场景。
限制
资料未提供关于授权、收费、价格、平台兼容版本、性能上限或已知缺陷的明确说明,这些信息暂未提供。