mcpField
S
syncfusion-wpf-linear-gauge

syncfusion-wpf-linear-gauge

github.com/syncfusionデザイン・UI5154 回インストール1 週間前に更新
リポジトリ

syncfusion-wpf-linear-gauge について

WPF 開発者向けに、数値を線形スケールで表示する Syncfusion の SfLinearGauge の実装方法を案内します。ポインター、色付き範囲、ラベル、目盛り、向き、アニメーションを扱います。

主な機能

  1. 01水平・垂直スケール
  2. 02バー型・シンボル型ポインター
  3. 03色分けされた値の範囲
  4. 04ラベルと目盛りのカスタマイズ
  5. 05ポインターのアニメーションとデータバインディング

活用シーン

  1. 01温度計風の表示を作成
  2. 02タスクの進捗を表示
  3. 03パフォーマンスのしきい値を監視
  4. 04同じスケール上で値を比較

インストール

コマンドをコピーしてターミナルで実行します。

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

インストール後、Claude Code で/syncfusion-wpf-linear-gaugeを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
getting-started.md
labels-and-ticks.md
orientation.md
pointers.md
ranges.md
scale-configuration.md

詳細

リニアゲージの実装

Windows Presentation Foundation アプリケーションで Syncfusion WPF リニアゲージ(SfLinearGauge)コントロールを実装するための包括的なガイドです。リニアゲージは、線形目盛りに沿って数値をグラフィカルに表示します。温度計、進捗インジケーター、スライドメーター、水平または垂直方向での値の可視化に最適です。

このスキルを使用する場面

次のような場合に、このスキルを使用してください。

  • WPF アプリケーションで SfLinearGauge を実装する
  • 温度や測定値を可視化する 温度計スタイルの表示を作成する
  • 目盛りと値マーカーを備えた 進捗インジケーターを作成する
  • 目盛り、ポインター、範囲を使って 数値を線形に可視化する
  • パフォーマンスの監視や値の追跡に使う スライドメーターを作成する
  • 異なる値の範囲を示す色付きゾーンで 値を表示する
  • カスタマイズ可能な方向で 水平または垂直のゲージを実装する
  • 新しい値へ滑らかに移動する アニメーション付きポインターを追加する
  • 1つの目盛り上で値を比較するために 複数のポインターを設定する
  • 柔軟な配置とスタイル設定で カスタムゲージレイアウトを設計する

コンポーネントの概要

SfLinearGauge コントロールは、水平または垂直方向の線形目盛りに沿って値を測定し、表示します。次の機能を備えた包括的なゲージ可視化システムを提供します。

  • 線形目盛り - 最小値/最大値、間隔、方向を設定できる基盤
  • ポインター - 目盛り上の特定の値を示すバー型およびシンボル型のポインター
  • 範囲 - 特定の値の範囲を強調表示する色付きのセクション
  • ラベル - 書式設定、接頭辞/接尾辞、配置オプションを備えた数値ラベル
  • 目盛り線 - 目盛りの間隔を示す主目盛り線と副目盛り線
  • 方向 - 横向き(ランドスケープ)または縦向き(ポートレート)のレイアウトをサポート
  • アニメーション - 再生時間を設定できる滑らかなポインターアニメーション
  • テーマ設定 - UI スタイルを統一する組み込みテーマのサポート

主な機能:

  • 1つの目盛り上で複数の種類のポインター(バー型およびシンボル型)を使用可能
  • しきい値を可視化する色分けされた範囲
  • XAML とコードビハインドによる完全なカスタマイズ
  • MVVM データバインディングのサポート
  • レスポンシブなサイズ設定とレイアウト
  • プロフェッショナルなゲージのデザイン

ドキュメントとナビゲーションガイド

はじめに

📄 参照: references/getting-started.md

読むタイミング: 新しいリニアゲージの実装を始めるとき、または初回セットアップを行うとき。

内容:

  • Syncfusion.SfGauge.WPF NuGet パッケージのインストール
  • アセンブリ参照の追加(3つの方法)
  • XAML と C# での名前空間のインポート
  • 空の SfLinearGauge コントロールの初期化
  • 基本プロパティを使った最初の目盛りの設定
  • 値を示すシンボルポインターの追加
  • 進捗を示すバー型ポインターの追加
  • 値のゾーンを表す色付き範囲の作成
  • 最小構成の完全な動作例
  • SfSkinManager を使ったテーマの適用
目盛りの設定

📄 参照: references/scale-configuration.md

読むタイミング: 目盛りの外観、範囲、間隔、サイズ、方向、位置を設定するとき。

内容:

  • MainScale プロパティと LinearScale の理解
  • 目盛り範囲の最小値と最大値の設定
  • ラベルと目盛り線の間隔の設定
  • 目盛りの外観のカスタマイズ(色、境界線、線幅)
  • 目盛りサイズのカスタマイズ(ScaleBarSize、ScaleBarLength)
  • 目盛りの方向の設定(Forward または Backward)
  • ScaleBarPositionFactor を使った目盛りの配置
  • カスタム配置のための ElementsPositionMode
  • 間隔の自動計算
  • XAML と C# による完全なコード例
ポインター

📄 参照: references/pointers.md

読むタイミング: 値を示すポインターの追加、バーまたはシンボルポインターの実装、ポインターの外観のカスタマイズ、アニメーションの有効化、複数のポインターの追加を行う場合。

内容:

  • ポインターの種類の概要(BarPointer と SymbolPointer)
  • 進捗や塗りつぶしを示すバー ポインターの実装
  • バー ポインターのカスタマイズ(ストロークの色、太さ)
  • 値を示すシンボル ポインターの実装
  • シンボル ポインターのカスタマイズ(サイズ、形状、ストローク)
  • シンボル ポインターの位置指定(Above、Below、Cross)
  • テンプレートを使用したカスタム シンボル ポインターの形状
  • 1つのスケールへの複数のポインターの追加
  • EnableAnimation によるポインター アニメーションの有効化
  • AnimationDuration によるアニメーション速度の制御
  • ポインターの値とデータのバインド
  • 各ポインターの種類の完全な例
範囲

📄 参照: references/ranges.md

読むタイミング: 値の範囲を色で強調表示する、しきい値ゾーンを作成する、複数の範囲を追加する、または範囲の外観や位置をカスタマイズする場合。

内容:

  • 範囲の概要と視覚的な目的
  • 範囲の StartValue と EndValue の設定
  • 範囲のカスタマイズ(ストロークの色、幅、不透明度)
  • 幅が変化する範囲(StartWidth、EndWidth)
  • 範囲の色と目盛りおよびラベルのバインド
  • RangeOffset による範囲の位置指定
  • RangePosition プロパティ(Above、Below)
  • 色分けされたゾーンとして複数の範囲を追加
  • よく使われる範囲パターン(安全/警告/危険ゾーン)
  • 複数の範囲を使った完全な例
ラベルと目盛り

📄 参照: references/labels-and-ticks.md

読むタイミング: スケールラベルのカスタマイズ、ラベルテキストの書式設定、ラベルの位置指定、目盛りの設定、または目盛り間隔の調整を行う場合。

内容:

  • ラベル:
    • LabelStroke によるラベルの色のカスタマイズ
    • フォントのカスタマイズ(LabelSize、FontFamily、FontStyle)
    • ラベルの位置指定(LabelPosition:Above、Below)
    • 間隔を調整するラベルのオフセット
    • ラベルテキストへの接頭辞と接尾辞の追加
    • ラベルの表示制御
  • 目盛り:
    • 主目盛りと補助目盛りのカスタマイズ(ストローク、サイズ、太さ)
    • 目盛りの位置指定(TickPosition:Above、Below、Cross)
    • MinorTicksPerInterval の設定
    • 目盛りの外観とスタイル設定
  • ラベルと目盛りを組み合わせた完全な例
方向

📄 参照: references/orientation.md

読むタイミング: ゲージの方向を水平から垂直に、またはその逆に変更する場合。

内容:

  • Orientation プロパティの概要
  • 水平方向(既定の横長レイアウト)
  • 垂直方向(縦長レイアウト)
  • 方向のユースケースと考慮事項
  • ポインターと範囲に対するレイアウトの影響
  • 両方の方向の完全な例

クイックスタートの例

スケール、バー ポインター、シンボル ポインター、色付き範囲を備えた、最小限の動作する Linear Gauge の例です。

XAML
<Window xmlns:gauge="clr-namespace:Syncfusion.UI.Xaml.Gauges;assembly=Syncfusion.SfGauge.Wpf">
    <Grid>
        <gauge:SfLinearGauge>
            <gauge:SfLinearGauge.MainScale>
                <gauge:LinearScale 
                    Minimum="0" 
                    Maximum="100"
                    Interval="10"
                    ScaleBarStroke="#E0E0E0"
                    LabelStroke="#424242"
                    MajorTickStroke="Gray"
                    MajorTickSize="15"
                    MinorTickStroke="Gray"
                    MinorTickSize="7"
                    MinorTicksPerInterval="3"
                    ScaleBarSize="10"
                    ScaleBarLength="300">
                    
                    
                    <gauge:LinearScale.Pointers>
                        <gauge:LinearPointer 
                            PointerType="BarPointer"
                            Value="65"
                            BarPointerStroke="#36D1DC"
                            BarPointerStrokeThickness="10"/>
                        
                        
                        <gauge:LinearPointer 
                            PointerType="SymbolPointer"
                            Value="65"
                            SymbolPointerHeight="15"
                            SymbolPointerWidth="15"
                            SymbolPointerPosition="Above"
                            SymbolPointerStroke="#5B86E5"/>
                    </gauge:LinearScale.Pointers>
                    
                    
                    <gauge:LinearScale.Ranges>
                        <gauge:LinearRange 
                            StartValue="0" 
                            EndValue="35"
                            RangeStroke="#27BEB7"
                            StartWidth="10"
                            EndWidth="10"
                            RangeOffset="0.4"/>
                        
                        <gauge:LinearRange 
                            StartValue="35" 
                            EndValue="70"
                            RangeStroke="Orange"
                            StartWidth="10"
                            EndWidth="10"
                            RangeOffset="0.4"/>
                        
                        <gauge:LinearRange 
                            StartValue="70" 
                            EndValue="100"
                            RangeStroke="Red"
                            StartWidth="10"
                            EndWidth="10"
                            RangeOffset="0.4"/>
                    </gauge:LinearScale.Ranges>
                </gauge:LinearScale>
            </gauge:SfLinearGauge.MainScale>
        </gauge:SfLinearGauge>
    </Grid>
</Window>
C# コードビハインド
using Syncfusion.UI.Xaml.Gauges;
using System.Windows.Media;

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        CreateLinearGauge();
    }
    
    private void CreateLinearGauge()
    {
        // Create gauge
        SfLinearGauge gauge = new SfLinearGauge();
        
        // Create scale
        LinearScale scale = new LinearScale
        {
            Minimum = 0,
            Maximum = 100,
            Interval = 10,
            ScaleBarStroke = new SolidColorBrush(Color.FromRgb(224, 224, 224)),
            LabelStroke = new SolidColorBrush(Color.FromRgb(66, 66, 66)),
            MajorTickStroke = new SolidColorBrush(Colors.Gray),
            MajorTickSize = 15,
            MinorTickStroke = new SolidColorBrush(Colors.Gray),
            MinorTickSize = 7,
            MinorTicksPerInterval = 3,
            ScaleBarSize = 10,
            ScaleBarLength = 300
        };
        
        // Add bar pointer
        scale.Pointers.Add(new LinearPointer
        {
            PointerType = LinearPointerType.BarPointer,
            Value = 65,
            BarPointerStroke = new SolidColorBrush(Color.FromRgb(54, 209, 220)),
            BarPointerStrokeThickness = 10
        });
        
        // Add symbol pointer
        scale.Pointers.Add(new LinearPointer
        {
            PointerType = LinearPointerType.SymbolPointer,
            Value = 65,
            SymbolPointerHeight = 15,
            SymbolPointerWidth = 15,
            SymbolPointerPosition = LinearSymbolPointersPosition.Above,
            SymbolPointerStroke = new SolidColorBrush(Color.FromRgb(91, 134, 229))
        });
        
        // Add ranges
        scale.Ranges.Add(new LinearRange
        {
            StartValue = 0,
            EndValue = 35,
            RangeStroke = new SolidColorBrush(Color.FromRgb(39, 190, 183)),
            StartWidth = 10,
            EndWidth = 10,
            RangeOffset = 0.4
        });
        
        gauge.MainScale = scale;
        this.Content = gauge;
    }
}

よく使われるパターン

温度計パターン

垂直方向で温度計スタイルのゲージを作成します。

<gauge:SfLinearGauge Orientation="Vertical">
    <gauge:SfLinearGauge.MainScale>
        <gauge:LinearScale 
            Minimum="-20" 
            Maximum="120"
            LabelPostfix="°C"
            ScaleBarSize="15">
            <gauge:LinearScale.Pointers>
                <gauge:LinearPointer 
                    PointerType="BarPointer"
                    Value="37"
                    BarPointerStroke="Red"
                    BarPointerStrokeThickness="15"/>
            </gauge:LinearScale.Pointers>
        </gauge:LinearScale>
    </gauge:SfLinearGauge.MainScale>
</gauge:SfLinearGauge>
進捗インジケーターパターン

アニメーション付きポインターで進捗を表示します。

<gauge:LinearScale.Pointers>
    <gauge:LinearPointer 
        PointerType="BarPointer"
        Value="{Binding ProgressValue}"
        EnableAnimation="True"
        AnimationDuration="500"
        BarPointerStroke="#36D1DC"
        BarPointerStrokeThickness="12"/>
</gauge:LinearScale.Pointers>
複数ゾーンの値メーターパターン

安全/警告/危険ゾーンを作成します。

<gauge:LinearScale.Ranges>
    
    <gauge:LinearRange 
        StartValue="0" 
        EndValue="60"
        RangeStroke="Green"
        StartWidth="15"
        EndWidth="15"/>
    
    
    <gauge:LinearRange 
        StartValue="60" 
        EndValue="80"
        RangeStroke="Yellow"
        StartWidth="15"
        EndWidth="15"/>
    
    
    <gauge:LinearRange 
        StartValue="80" 
        EndValue="100"
        RangeStroke="Red"
        StartWidth="15"
        EndWidth="15"/>
</gauge:LinearScale.Ranges>
複数ポインターによる比較パターン

1つのスケール上で2つの値を比較します。

<gauge:LinearScale.Pointers>
    
    <gauge:LinearPointer 
        PointerType="SymbolPointer"
        Value="75"
        SymbolPointerStroke="Blue"
        SymbolPointerPosition="Above"/>
    
    
    <gauge:LinearPointer 
        PointerType="SymbolPointer"
        Value="90"
        SymbolPointerStroke="Green"
        SymbolPointerPosition="Below"/>
</gauge:LinearScale.Pointers>

主なプロパティ

SfLinearGauge のプロパティ
プロパティ型説明
MainScaleLinearScaleすべてのゲージ要素を含むメイン スケール
OrientationOrientation水平(既定)または垂直のレイアウト
LinearScale のプロパティ
プロパティ型説明
Minimumdoubleスケールの最小値(デフォルト:0)
Maximumdoubleスケールの最大値(デフォルト:100)
Intervaldouble目盛りとラベルの間隔
ScaleBarStrokeBrushスケールバーの背景色
ScaleBarSizedoubleスケールバーの太さ(水平の場合は高さ)
ScaleBarLengthdoubleスケールバーの長さ(水平の場合は幅)
ScaleDirectionLinearScaleDirection順方向または逆方向
PointersObservableCollectionLinearPointer オブジェクトのコレクション
RangesObservableCollectionLinearRange オブジェクトのコレクション
LabelStrokeBrushラベルテキストの色
LabelPositionLinearLabelsPositionスケールの上または下
LabelPrefixstringラベルの前に付けるテキスト
LabelPostfixstringラベルの後に付けるテキスト
MajorTickStrokeBrush主目盛りの色
MajorTickSizedouble主目盛りの長さ
MinorTickStrokeBrush副目盛りの色
MinorTickSizedouble副目盛りの長さ
MinorTicksPerIntervalint主目盛り間の副目盛りの数
TickPositionLinearTicksPosition上、下、または交差
LinearPointer のプロパティ
プロパティ型説明
PointerTypeLinearPointerTypeBarPointer または SymbolPointer
Valuedoubleスケール上のポインターの値
BarPointerStrokeBrushバーポインターの色
BarPointerStrokeThicknessdoubleバーポインターの幅
SymbolPointerStrokeBrushシンボルポインターの色
SymbolPointerHeightdoubleシンボルポインターの高さ
SymbolPointerWidthdoubleシンボルポインターの幅
SymbolPointerPositionLinearSymbolPointersPosition上、下、または交差
EnableAnimationboolポインターの滑らかな遷移を有効にします
AnimationDurationintアニメーションの時間(ミリ秒)
LinearRange のプロパティ
プロパティ型説明
StartValuedouble範囲の開始値
EndValuedouble範囲の終了値
RangeStrokeBrush範囲の色
StartWidthdouble開始位置での範囲の幅
EndWidthdouble終了位置での範囲の幅(先細りの範囲の場合)
RangeOffsetdoubleスケールバーからの距離
RangeOpacitydouble範囲の不透明度(0.0~1.0)

一般的なユースケース

温度の監視

温度の読み取り値を表示し、通常、警告、危険な温度を色分けした範囲で示します。温度計のような表示には、垂直方向を使用します。

パフォーマンス指標

バー表示のポインターで現在値を示し、許容しきい値を範囲で示すことで、KPI、CPU 使用率、メモリ消費量などのパフォーマンス指標を追跡します。

進捗状況の追跡

アニメーション付きのバー表示ポインターを使用して、値の更新に合わせて滑らかに遷移させ、タスク、ダウンロード、プロセスの完了率を示します。

測定値の表示

圧力計、スピードメーター、電圧計など、線形スケール表示が役立つあらゆる測定器を作成します。

値の比較

複数のポインターを使用して、実績値と目標値、現在値と過去値、または単一スケール上の複数の指標を比較します。

ダッシュボードウィジェット

線形ゲージをダッシュボードに組み込み、一目でデータを監視できる、コンパクトで視覚的に魅力的なウィジェットとして活用します。

API ドキュメント

オンライン API リファレンス:


次のステップ: 実装のニーズに応じて、上記のリファレンスファイルを参照してください。初期設定には getting-started.md から始め、その後、必要に応じて各機能を確認してください。

コメント