mcpField
S
syncfusion-wpf-digital-gauge

syncfusion-wpf-digital-gauge

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

关于 syncfusion-wpf-digital-gauge

这项参考技能介绍 Syncfusion 的 WPF SfDigitalGauge 控件,涵盖分段显示类型与样式,可在时钟、仪表板、计数器和仪表面板中显示数字或字母数字值。

主要功能

  1. 01以 LED 风格分段显示数值
  2. 02选择四种字符显示类型
  3. 03设置点亮与暗显分段样式
  4. 04调整尺寸、间距和倾斜
  5. 05支持从右向左的文本

适用场景

  1. 01显示实时钟表或倒计时
  2. 02在仪表板展示传感器读数
  3. 03构建数字里程表或状态显示

安装

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

$npx skills add https://github.com/syncfusion/wpf-ui-components-skills --skill syncfusion-wpf-digital-gauge

安装后在 Claude Code 中输入/syncfusion-wpf-digital-gauge确认已加载。

包含的文件

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

references/
character-types.md
customization.md
getting-started.md
segment-styling.md
transformations.md

详细介绍

实现数字仪表(SfDigitalGauge)

SfDigitalGauge 控件可通过数字 LED 风格的分段显示字母数字字符,非常适合在 WPF 应用程序中创建虚拟数字显示屏、时钟、速度计和计数器。

何时使用此技能

在以下情况下使用 SfDigitalGauge:

  • 以数字 LED 格式显示数值(时钟、计时器、计数器)
  • 为仪表板或仪表面板创建数字显示屏
  • 以分段格式显示字母数字文本(产品代码、状态消息)
  • 构建显示速度或距离的数字速度计或里程表
  • 创建具有经典 LED 分段美感的复古风格数字界面
  • 以点阵格式显示特殊字符
  • 实现实时更新的显示屏(实时数据流、传感器读数)

组件类型: 数据可视化控件
平台: Windows Presentation Foundation(WPF)
包: Syncfusion.SfGauge.WPF


文档与导航指南

入门

📄 阅读: references/getting-started.md

适用于以下需求:

  • 在 WPF 项目中安装和配置 SfDigitalGauge
  • 添加程序集引用(NuGet、工具箱或手动添加)
  • 为 XAML 和 C# 代码设置命名空间
  • 初始化控件以供首次使用
  • 显示基本数值
  • 应用主题支持
字符类型和分段

📄 阅读: references/character-types.md

适用于以下需求:

  • 在 4 种不同的分段显示类型之间进行选择
  • 仅显示数字(7 段)
  • 显示数字和字母(14 段或 16 段)
  • 显示特殊字符(8×8 点阵)
  • 了解适用于具体使用场景的 CharacterType
  • 查看不同分段类型的直观对比
自定义和样式设置

📄 阅读: references/customization.md

适用于以下需求:

  • 调整字符尺寸(高度、宽度)
  • 控制字符间距
  • 更改字符描边颜色
  • 设置变暗(非活动)分段的样式
  • 调整背景分段的不透明度
  • 创建美观的显示屏
变换

📄 阅读: references/transformations.md

适用于以下需求:

  • 缩放字符(放大或缩小)
  • 应用倾斜变换
  • 创建倾斜的数字显示屏
  • 沿 X 轴或 Y 轴变换字符
  • 实现透视效果
分段样式和高级功能

📄 阅读: references/segment-styling.md

适用于以下需求:

  • 调整分段粗细
  • 启用从右到左(RTL)文本方向
  • 微调视觉外观
  • 匹配背景颜色

快速入门

基本数字显示
<Window xmlns:gauge="clr-namespace:Syncfusion.UI.Xaml.Gauges;assembly=Syncfusion.SfGauge.Wpf">
    <gauge:SfDigitalGauge Value="12345" />
</Window>
using Syncfusion.UI.Xaml.Gauges;

SfDigitalGauge digitalGauge = new SfDigitalGauge();
digitalGauge.Value = "12345";
this.Content = digitalGauge;
数字时钟显示
<gauge:SfDigitalGauge Value="11:59:50 PM"
                      Height="100"
                      Width="375"
                      CharacterHeight="60"
                      CharacterWidth="25"
                      CharacterType="EightCrossEightDotMatrix"
                      CharacterStroke="#146CED"
                      DimmedBrush="#F2F2F2"
                      HorizontalAlignment="Center"
                      VerticalAlignment="Center" />
SfDigitalGauge clock = new SfDigitalGauge();
clock.Value = "11:59:50 PM";
clock.Height = 100;
clock.Width = 375;
clock.CharacterHeight = 60;
clock.CharacterWidth = 25;
clock.CharacterType = CharacterType.EightCrossEightDotMatrix;
clock.CharacterStroke = (SolidColorBrush)new BrushConverter().ConvertFrom("#146CED");
clock.DimmedBrush = (SolidColorBrush)new BrushConverter().ConvertFrom("#F2F2F2");
clock.HorizontalAlignment = HorizontalAlignment.Center;
clock.VerticalAlignment = VerticalAlignment.Center;

常见模式

模式 1:简单数字计数器

仅显示数字时使用 7 段显示:

<gauge:SfDigitalGauge Value="12345" 
                      CharacterType="SegmentSeven"
                      CharacterHeight="40"
                      CharacterWidth="20"
                      CharacterStroke="Red" />

适用场景: 计数器、计时器,以及仅需显示数字 0-9 的数字显示屏。

模式 2:字母数字显示

显示文本和数字时使用 14 段或 16 段:

<gauge:SfDigitalGauge Value="SPEED 088" 
                      CharacterType="SegmentFourteen"
                      CharacterHeight="50"
                      CharacterWidth="30"
                      CharacterStroke="Green" />

适用场景: 状态消息、产品代码,以及包含字母数字混合内容的标签。

模式 3:用于特殊字符的点阵

需要完整字符支持时使用 8×8 点阵:

<gauge:SfDigitalGauge Value="SYNC@2024!" 
                      CharacterType="EightCrossEightDotMatrix"
                      CharacterHeight="60"
                      CharacterWidth="35"
                      CharacterStroke="Orange" />

适用场景: 电子邮件地址、URL、特殊符号,以及复杂文本显示屏。

模式 4:带样式的仪表板显示

应用全面的样式设置,打造专业外观:

<gauge:SfDigitalGauge Value="TEMP 72°F"
                      CharacterType="SegmentSixteen"
                      CharacterHeight="55"
                      CharacterWidth="32"
                      CharactersSpacing="8"
                      CharacterStroke="#00FF00"
                      DimmedBrush="#1A1A1A"
                      DimmedBrushOpacity="30"
                      SegmentThickness="3" />

适用场景: 仪表板面板、控制室,以及需要清晰可见的监控显示屏。

模式 5:倾斜的数字速度计

创建动态透视效果:

<gauge:SfDigitalGauge Value="125 MPH"
                      CharacterType="SegmentSeven"
                      CharacterHeight="70"
                      CharacterWidth="40"
                      SkewAngleX="15"
                      CharacterStroke="Cyan" />

适用场景: 速度计、赛车仪表板,以及带有动态感的显示屏。


关键属性参考

属性类型描述
Valuestring要显示的字母数字文本
CharacterTypeEnum字符段类型:SegmentSeven、SegmentFourteen、SegmentSixteen、EightCrossEightDotMatrix
CharacterHeightdouble每个字符的高度(像素)
CharacterWidthdouble每个字符的宽度(像素)
CharactersSpacingdouble字符之间的距离
CharacterStrokeBrush活动(点亮)字符段的颜色
DimmedBrushBrush非活动(变暗)字符段的颜色
DimmedBrushOpacitydouble变暗字符段的不透明度(0-100)
SegmentThicknessdouble字符段线条的粗细
SkewAngleXdouble水平倾斜角度(度)
SkewAngleYdouble垂直倾斜角度(度)
EnableRTLFormatbool启用从右到左的文本方向

常见用例

1. 实时时钟显示

显示实时更新的时间:

// Update timer every second
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromSeconds(1);
timer.Tick += (s, e) => digitalGauge.Value = DateTime.Now.ToString("hh:mm:ss tt");
timer.Start();
2. 倒计时器

为活动创建倒计时显示:

TimeSpan remaining = TimeSpan.FromMinutes(10);
digitalGauge.Value = remaining.ToString(@"mm\:ss");
3. 实时传感器读数

以适当的格式显示传感器数据:

digitalGauge.Value = $"TEMP {sensorReading:F1}°C";
digitalGauge.CharacterType = CharacterType.SegmentSixteen;
4. 数字里程表

显示带前导零的距离:

double miles = 12345.6;
digitalGauge.Value = miles.ToString("000000.0");
digitalGauge.CharacterType = CharacterType.SegmentSeven;
5. 状态指示器

显示系统状态消息:

digitalGauge.Value = isOnline ? "ONLINE" : "OFFLINE";
digitalGauge.CharacterStroke = isOnline ? Brushes.Green : Brushes.Red;
digitalGauge.CharacterType = CharacterType.SegmentFourteen;

最佳实践

  1. 选择合适的 CharacterType:

    • 仅数字 → SegmentSeven
    • 数字 + 字母 → SegmentFourteen 或 SegmentSixteen
    • 特殊字符 → EightCrossEightDotMatrix
  2. 确保可读性:

    • 使用合适的 CharacterHeight(大多数情况下为 40-70px)
    • 设置合适的 CharactersSpacing(5-15px)
    • 选择对比鲜明的 CharacterStroke 颜色
  3. 优化变暗字符段:

    • 设置 DimmedBrush,使其与背景颜色相匹配
    • 调整 DimmedBrushOpacity(20-40),获得微妙效果
  4. 性能注意事项:

    • 避免频繁更新 Value(间隔小于 50ms)
    • 使用字符串格式化,避免不必要的更新
  5. 无障碍性:

    • 为屏幕阅读器提供文本替代内容
    • 确保颜色对比度足够
    • 考虑视障用户的需求

相关技能


其他资源

评论

支持 Markdown