mcpField
S
syncfusion-wpf-bullet-graph

syncfusion-wpf-bullet-graph

github.com/syncfusionDesign & UI5157 installsUpdated 1w ago
Repository

About syncfusion-wpf-bullet-graph

An implementation guide for Syncfusion SfBulletGraph in WPF, for comparing a current value with a target in a compact chart with qualitative context. It covers visualizing performance metrics in dashboards and KPI views.

Key features

  1. 01Compare current and target values
  2. 02Qualitative background ranges
  3. 03Configurable scales, ticks, and labels
  4. 04Horizontal or vertical layout
  5. 05Caption and tooltip customization
  6. 06Data binding and MVVM support

Use cases

  1. 01Show revenue against targets
  2. 02Analyze expenses against budgets
  3. 03Display KPIs on dashboards
  4. 04Visualize progress toward goals

Install

Copy the command and run it in a terminal.

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

After installing, type/syncfusion-wpf-bullet-graphin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
advanced-features.md
caption.md
getting-started.md
measures.md
quantitative-scale.md
ranges.md

Details

From the project README

Implementing Bullet Graphs in WPF

Guide for implementing the Syncfusion® WPF Bullet Graph (SfBulletGraph) component. A bullet graph is a compact, linear visualization designed to display performance metrics by showing a primary measure (current value) against a target measure within qualitative ranges that indicate performance levels.

When to Use This Skill

Use this skill when you need to:

  • Display performance metrics with current values versus targets
  • Create KPI dashboards with space-efficient visualizations
  • Show progress toward goals with visual performance indicators
  • Replace traditional gauges with more compact bullet graph displays
  • Visualize data in context using qualitative range backgrounds
  • Implement revenue analysis or expense tracking visualizations
  • Build dashboard environments where screen space is limited
  • Compare actual vs. target values in a single compact visualization

Component Overview

The SfBulletGraph is a variation of the bar graph designed as a replacement for dashboard gauges and meters. It features:

  • Featured Measure: The primary data value (e.g., current year-to-date revenue) displayed as a prominent bar
  • Comparative Measure: A target or reference value displayed as a perpendicular line marker
  • Qualitative Ranges: Background color bands that provide context (e.g., poor, satisfactory, good)
  • Quantitative Scale: Configurable axis with major/minor ticks and labels
  • Caption Support: Descriptive labels to identify what the bullet graph represents
  • Orientation Options: Horizontal or vertical layout
  • Compact Design: Shows substantial data in minimal space

Typical Use Cases:

  • Revenue vs. target tracking
  • Expense analysis against budgets
  • Performance metrics on dashboards
  • KPI visualization
  • Goal progress indicators

Documentation and Navigation Guide

Getting Started

📄 Read: references/getting-started.md

  • Installation via NuGet or Syncfusion Reference Manager
  • Assembly references (Syncfusion.SfBulletGraph.WPF)
  • Namespace declarations
  • Basic bullet graph creation in XAML and C#
  • Theme support and customization
  • First working example
Quantitative Scale Configuration

📄 Read: references/quantitative-scale.md

  • Setting scale range (Minimum, Maximum, Interval)
  • Major tick configuration (size, stroke, color)
  • Minor tick configuration (per interval, size, stroke)
  • Label customization and formatting
  • Scale length adjustment
  • Tick and label visibility options
Performance Measures

📄 Read: references/measures.md

  • Featured measure implementation (primary data value)
  • Featured measure bar customization (stroke, thickness)
  • Comparative measure implementation (target/goal marker)
  • Comparative measure symbol customization
  • Visual hierarchy and layering
  • Measure value binding
Qualitative Ranges

📄 Read: references/ranges.md

  • Creating range collections (QualitativeRanges)
  • Range properties (RangeStart, RangeEnd, RangeStroke)
  • Range size and opacity customization
  • Binding range colors to ticks and labels
  • Common range patterns (Bad/Satisfactory/Good)
  • Best practices for range design
Caption Customization

📄 Read: references/caption.md

  • Adding captions to bullet graphs
  • Caption positioning (Near, Far)
  • Custom caption content and layouts
  • Multi-line captions with StackPanel
  • Caption styling and formatting
  • XAML and C# caption examples
Advanced Features

📄 Read: references/advanced-features.md

  • Orientation (Horizontal, Vertical)
  • Flow direction (RTL support)
  • Tooltip configuration and customization
  • Custom tooltip templates for measures and ranges
  • Data binding scenarios
  • MVVM pattern implementation
  • Performance optimization tips

Quick Start Example

Basic Bullet Graph in XAML
<Window xmlns:syncfusion="http://schemas.syncfusion.com/wpf">
    <Grid>
        <syncfusion:SfBulletGraph 
            Minimum="0" 
            Maximum="10" 
            Interval="2"
            FeaturedMeasure="5" 
            ComparativeMeasure="7"
            MinorTicksPerInterval="3"
            MajorTickSize="15" 
            MinorTickSize="10">
            
            <syncfusion:SfBulletGraph.QualitativeRanges>
                <syncfusion:QualitativeRange RangeEnd="4.5" RangeStroke="#EBEBEB"/>
                <syncfusion:QualitativeRange RangeEnd="7.5" RangeStroke="#D8D8D8"/>
                <syncfusion:QualitativeRange RangeEnd="10" RangeStroke="#7F7F7F"/>
            </syncfusion:SfBulletGraph.QualitativeRanges>
        </syncfusion:SfBulletGraph>
    </Grid>
</Window>
Basic Bullet Graph in C#
using Syncfusion.UI.Xaml.BulletGraph;

SfBulletGraph bulletGraph = new SfBulletGraph();
bulletGraph.Minimum = 0;
bulletGraph.Maximum = 10;
bulletGraph.Interval = 2;
bulletGraph.FeaturedMeasure = 5;
bulletGraph.ComparativeMeasure = 7;
bulletGraph.MinorTicksPerInterval = 3;
bulletGraph.MajorTickSize = 15;
bulletGraph.MinorTickSize = 10;

bulletGraph.QualitativeRanges.Add(new QualitativeRange() 
{ 
    RangeEnd = 4.5, 
    RangeStroke = new SolidColorBrush(Color.FromRgb(235, 235, 235)) 
});
bulletGraph.QualitativeRanges.Add(new QualitativeRange() 
{ 
    RangeEnd = 7.5, 
    RangeStroke = new SolidColorBrush(Color.FromRgb(216, 216, 216)) 
});
bulletGraph.QualitativeRanges.Add(new QualitativeRange() 
{ 
    RangeEnd = 10, 
    RangeStroke = new SolidColorBrush(Color.FromRgb(127, 127, 127)) 
});

this.Grid.Children.Add(bulletGraph);

Common Patterns

Revenue Dashboard with Caption
<syncfusion:SfBulletGraph 
    Minimum="0" 
    Maximum="100" 
    Interval="20"
    FeaturedMeasure="65" 
    ComparativeMeasure="80"
    CaptionPosition="Far"
    QualitativeRangesSize="30">
    
    <syncfusion:SfBulletGraph.Caption>
        <StackPanel Margin="0,0,10,0">
            <TextBlock Text="Revenue YTD" FontSize="13" HorizontalAlignment="Center"/>
            <TextBlock Text="$ in Thousands" FontSize="13" HorizontalAlignment="Center"/>
        </StackPanel>
    </syncfusion:SfBulletGraph.Caption>
    
    <syncfusion:SfBulletGraph.QualitativeRanges>
        <syncfusion:QualitativeRange RangeEnd="35" RangeStroke="Red" RangeOpacity="1"/>
        <syncfusion:QualitativeRange RangeEnd="70" RangeStroke="Yellow" RangeOpacity="1"/>
        <syncfusion:QualitativeRange RangeEnd="100" RangeStroke="Green" RangeOpacity="1"/>
    </syncfusion:SfBulletGraph.QualitativeRanges>
</syncfusion:SfBulletGraph>
Vertical Bullet Graph
<syncfusion:SfBulletGraph 
    Orientation="Vertical"
    Minimum="0" 
    Maximum="100" 
    Interval="25"
    FeaturedMeasure="75" 
    ComparativeMeasure="90"
    FeaturedMeasureBarStroke="Black">
    
    <syncfusion:SfBulletGraph.QualitativeRanges>
        <syncfusion:QualitativeRange RangeEnd="40" RangeStroke="#FF6B6B"/>
        <syncfusion:QualitativeRange RangeEnd="75" RangeStroke="#FFE66D"/>
        <syncfusion:QualitativeRange RangeEnd="100" RangeStroke="#95E1D3"/>
    </syncfusion:SfBulletGraph.QualitativeRanges>
</syncfusion:SfBulletGraph>
Bullet Graph with Tooltips
<syncfusion:SfBulletGraph 
    Minimum="0" 
    Maximum="10" 
    FeaturedMeasure="6.5" 
    ComparativeMeasure="8"
    ShowToolTip="True"
    QualitativeRangesSize="30">
    
    <syncfusion:SfBulletGraph.QualitativeRanges>
        <syncfusion:QualitativeRange RangeEnd="4" RangeStroke="Red" RangeOpacity="0.8"/>
        <syncfusion:QualitativeRange RangeEnd="7" RangeStroke="Yellow" RangeOpacity="0.8"/>
        <syncfusion:QualitativeRange RangeEnd="10" RangeStroke="Green" RangeOpacity="0.8"/>
    </syncfusion:SfBulletGraph.QualitativeRanges>
</syncfusion:SfBulletGraph>

Key Properties

Scale Properties
  • Minimum - Starting value of the quantitative scale
  • Maximum - Ending value of the quantitative scale
  • Interval - Distance between major ticks
  • MinorTicksPerInterval - Number of minor ticks between major ticks
  • QuantitativeScaleLength - Length of the scale in pixels
Measure Properties
  • FeaturedMeasure - Primary data value (current performance)
  • FeaturedMeasureBarStroke - Color of the featured measure bar
  • FeaturedMeasureBarStrokeThickness - Thickness of the featured measure bar
  • ComparativeMeasure - Target or comparison value
  • ComparativeMeasureSymbolStroke - Color of the comparative measure marker
  • ComparativeMeasureSymbolStrokeThickness - Thickness of the comparative measure marker
Tick and Label Properties
  • MajorTickSize - Size of major tick marks
  • MajorTickStroke - Color of major tick marks
  • MinorTickSize - Size of minor tick marks
  • MinorTickStroke - Color of minor tick marks
  • LabelStroke - Color of scale labels
Range Properties
  • QualitativeRanges - Collection of qualitative range objects
  • QualitativeRangesSize - Height/width of the range bands
  • BindRangeStrokeToLabels - Sync label colors with range colors
  • BindRangeStrokeToTicks - Sync tick colors with range colors
Layout Properties
  • Orientation - Horizontal or Vertical layout
  • FlowDirection - LeftToRight or RightToLeft
  • Caption - Descriptive content for the bullet graph
  • CaptionPosition - Near (left/top) or Far (right/bottom)
Tooltip Properties
  • ShowToolTip - Enable/disable tooltip display
  • FeaturedMeasureToolTipTemplate - Custom template for featured measure tooltip
  • ComparativeMeasureToolTipTemplate - Custom template for comparative measure tooltip
  • QualitativeRangeToolTipTemplate - Custom template for range tooltip

Comments

Markdown supported