skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
syncfusion/wpf-ui-components-skills135 installs

syncfusion-wpf-surface-chart

Guide for implementing Syncfusion WPF Surface Chart (SfSurfaceChart) for three-dimensional data visualization. Use this when working with 3D surface charts, contour charts, wireframe charts, or mathematical surface plotting with X, Y, Z coordinates. This skill covers surface visualization, topographical charts, and 3D data plotting scenarios for WPF applications.

How do I install this agent skill?

npx skills add https://github.com/syncfusion/wpf-ui-components-skills --skill syncfusion-wpf-surface-chart
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    The skill provides comprehensive documentation and implementation guides for the Syncfusion WPF Surface Chart. It includes code examples for XAML and C#, data binding techniques, and customization options. No malicious patterns or security risks were identified.

  • Socketpass

    No alerts

  • Snykpass

    Risk: LOW · No issues

What does this agent skill do?

Implementing Syncfusion WPF Surface Chart

The SfSurfaceChart is a three-dimensional surface that connects a set of data points.

When to Use This Skill

Use this skill when the user needs to:

  • Visualize three-dimensional data with X, Y, and Z coordinates
  • Create 3D surface plots for mathematical functions or scientific data
  • Display topographical or elevation maps
  • Show contour plots or wireframe visualizations
  • Implement interactive 3D charts with rotation and zooming
  • Render heat maps with color-coded values
  • Visualize relationships between three variables
  • Create mesh or grid-based 3D visualizations

The Syncfusion WPF Surface Chart (SfSurfaceChart) is specifically designed for rendering three-dimensional data in a grid format, supporting multiple visualization types including standard surfaces, wireframes, and contour views.

Component Overview

SfSurfaceChart is a powerful 3D visualization control that displays data points in three-dimensional space. It connects data points to create a continuous surface, making it ideal for exploring relationships between three variables.

Key Capabilities:

  • Four surface types: Surface, WireframeSurface, Contour, WireframeContour
  • Multiple data binding methods (ItemsSource or direct data points)
  • Three customizable axes (X, Y, Z)
  • Color bars for value representation
  • Predefined and custom color palettes
  • Interactive rotation, tilting, and zooming
  • Perspective and orthographic camera projections
  • Gradient and solid color rendering

Visual Elements:

  • Surface Header - Title of the chart
  • Wall - Bounding walls around the chart (left, bottom, back)
  • Major Gridlines - Axis gridlines
  • Color Bar - Value range indicator with color mapping
  • Axis Labels - Labels for X, Y, Z axes
  • Axis Headers - Headers for each axis

Documentation and Navigation Guide

Getting Started

📄 Read: references/getting-started.md

  • Assembly reference and installation
  • Visual structure of surface chart elements
  • Creating surface chart from XAML
  • Creating surface chart from code-behind
  • Basic initialization and setup
  • Adding headers, axes, and color bars
  • Complete working examples
  • Theme support and customization

Surface Types

📄 Read: references/surface-types.md

  • Overview of 4 surface type options
  • Surface - Standard 3D surface visualization
  • WireframeSurface - Mesh/wireframe rendering
  • Contour - Top-down 2D contour view
  • WireframeContour - Mesh contour visualization
  • Choosing the right type for your data
  • Type property configuration
  • Visual comparisons and use cases

Data Binding

📄 Read: references/data-binding.md

  • Data structure requirements (grid format)
  • Using ItemsSource property with collections
  • XBindingPath, YBindingPath, ZBindingPath mapping
  • RowSize and ColumnSize configuration
  • Direct data input via Data.AddPoints method
  • Creating data models and ViewModels
  • Binding in XAML vs code-behind
  • Performance considerations

Axes Configuration

📄 Read: references/axes-configuration.md

  • X, Y, and Z axis setup
  • Default vs explicit axis definitions
  • Header and HeaderTemplate customization
  • LabelTemplate and LabelFormat options
  • Minimum and Maximum range settings
  • Interval and tick configuration
  • GridLines customization (stroke, thickness)
  • EdgeLabelsDrawingMode options
  • RangePadding settings
  • Complete axis styling examples

Surface Area Customization

📄 Read: references/surface-area.md

  • Surface area properties overview
  • Rotation and Rotate property
  • Tilt property for viewing angle
  • EnableRotation for interactivity
  • CameraProjection (Perspective/Orthographic)
  • Header and title customization
  • Wall brushes (LeftWallBrush, BottomWallBrush, BackWallBrush)
  • WallThickness configuration
  • Wireframe stroke and thickness
  • ShowContourLine option
  • BrushCount for color gradients
  • ApplyGradientBrush setting

Color Bar Configuration

📄 Read: references/color-bar.md

  • ColorBar purpose and value representation
  • DockPosition property (Left, Right, Top, Bottom)
  • ShowLabel property for value display
  • Adding and configuring color bars
  • Integration with palettes
  • XAML and code-behind setup

Palettes and Colors

📄 Read: references/palettes.md

  • Palette overview and purpose
  • 12 predefined palettes (Metro, AutumnBrights, FloraHues, Pineapple, etc.)
  • Applying predefined palettes via Palette property
  • Creating custom palettes with ChartColorModel
  • CustomBrushes collection
  • Gradient vs solid color rendering
  • Visual palette examples

User Interactions

📄 Read: references/user-interactions.md

  • Zooming capabilities and EnableZooming
  • ZoomLevel property for programmatic zoom
  • Pinch zooming support
  • Rotation with EnableRotation
  • Rotate property for programmatic rotation
  • Tilt property for viewing angle
  • Interactive vs programmatic control
  • Combining rotation, tilt, and zoom

Troubleshooting

📄 Read: references/troubleshooting.md

  • Common issues and solutions
  • Data not displaying correctly
  • RowSize and ColumnSize mismatches
  • Axis range and scaling problems
  • Performance optimization tips
  • Color bar visibility issues
  • Wireframe rendering problems
  • Assembly reference errors

Quick Start Example

Basic Surface Chart in XAML

<Window xmlns:chart="clr-namespace:Syncfusion.UI.Xaml.Charts;assembly=Syncfusion.SfChart.WPF">
    <Grid>
        <chart:SfSurfaceChart Type="Surface" 
                             ItemsSource="{Binding DataValues}"
                             XBindingPath="X" 
                             YBindingPath="Y" 
                             ZBindingPath="Z"
                             RowSize="{Binding RowSize}"
                             ColumnSize="{Binding ColumnSize}"
                             Header="3D Surface Chart"
                             Rotate="30" 
                             Tilt="15">
            
            <!-- X Axis -->
            <chart:SfSurfaceChart.XAxis>
                <chart:SurfaceAxis Header="X-Axis" />
            </chart:SfSurfaceChart.XAxis>
            
            <!-- Y Axis -->
            <chart:SfSurfaceChart.YAxis>
                <chart:SurfaceAxis Header="Y-Axis" LabelFormat="0.0" />
            </chart:SfSurfaceChart.YAxis>
            
            <!-- Z Axis -->
            <chart:SfSurfaceChart.ZAxis>
                <chart:SurfaceAxis Header="Z-Axis" />
            </chart:SfSurfaceChart.ZAxis>
            
            <!-- Color Bar -->
            <chart:SfSurfaceChart.ColorBar>
                <chart:ChartColorBar DockPosition="Right" ShowLabel="True" />
            </chart:SfSurfaceChart.ColorBar>
        </chart:SfSurfaceChart>
    </Grid>
</Window>

Data Model and ViewModel

// Data Model
public class Data
{
    public double X { get; set; }
    public double Y { get; set; }
    public double Z { get; set; }
}

// ViewModel
public class ViewModel
{
    public ObservableCollection<Data> DataValues { get; set; }
    public int RowSize { get; set; }
    public int ColumnSize { get; set; }
    
    public ViewModel()
    {
        DataValues = new ObservableCollection<Data>();
        
        // Generate sample data for mathematical surface
        double inc = 8.0 / 35;
        for (double x = -4; x < 4; x += inc)
        {
            for (double z = -4; z < 4; z += inc)
            {
                double y = 2 * (x * x) + 2 * (z * z) - 4;
                DataValues.Add(new Data() { X = x, Y = y, Z = z });
            }
        }
        
        RowSize = 35;
        ColumnSize = 35;
    }
}

Basic Surface Chart in Code-Behind

using Syncfusion.UI.Xaml.Charts;

// Create surface chart
SfSurfaceChart chart = new SfSurfaceChart();
chart.Type = SurfaceType.Surface;
chart.Header = "3D Surface Chart";
chart.Rotate = 30;
chart.Tilt = 15;

// Add data directly using AddPoints
for (double x = -4; x < 4; x += 0.2)
{
    for (double z = -4; z < 4; z += 0.2)
    {
        double y = 2 * (x * x) + 2 * (z * z) - 4;
        chart.Data.AddPoints(x, y, z);
    }
}

chart.RowSize = 40;
chart.ColumnSize = 40;

// Configure axes
chart.XAxis = new SurfaceAxis { Header = "X-Axis" };
chart.YAxis = new SurfaceAxis { Header = "Y-Axis", LabelFormat = "0.0" };
chart.ZAxis = new SurfaceAxis { Header = "Z-Axis" };

// Add color bar
ChartColorBar colorBar = new ChartColorBar();
colorBar.DockPosition = ChartDock.Right;
colorBar.ShowLabel = true;
chart.ColorBar = colorBar;

// Add to grid
grid.Children.Add(chart);

Common Patterns

Pattern 1: Mathematical Function Visualization

When visualizing mathematical functions in 3D:

// Generate data for z = sin(x) * cos(y)
for (double x = -Math.PI; x <= Math.PI; x += 0.1)
{
    for (double y = -Math.PI; y <= Math.PI; y += 0.1)
    {
        double z = Math.Sin(x) * Math.Cos(y);
        chart.Data.AddPoints(x, z, y);
    }
}

chart.RowSize = 63;  // Number of x points
chart.ColumnSize = 63;  // Number of y points

Pattern 2: Contour Chart for Top-Down View

When user needs a 2D contour view of 3D data:

<chart:SfSurfaceChart Type="Contour" 
                     Rotate="0"
                     ItemsSource="{Binding DataValues}"
                     XBindingPath="X" 
                     YBindingPath="Y" 
                     ZBindingPath="Z">
    <chart:SfSurfaceChart.ColorBar>
        <chart:ChartColorBar DockPosition="Right" ShowLabel="True"/>
    </chart:SfSurfaceChart.ColorBar>
</chart:SfSurfaceChart>

Pattern 3: Interactive Chart with User Control

When user needs to interact with the chart:

<chart:SfSurfaceChart EnableRotation="True" 
                     EnableZooming="True"
                     Type="Surface">
    <!-- Chart will respond to mouse drag (rotation) and mouse wheel (zoom) -->
</chart:SfSurfaceChart>

Pattern 4: Custom Color Palette

When user needs specific colors:

<chart:SfSurfaceChart Palette="Custom">
    <chart:SfSurfaceChart.ColorModel>
        <chart:ChartColorModel>
            <chart:ChartColorModel.CustomBrushes>
                <SolidColorBrush Color="Blue"/>
                <SolidColorBrush Color="Lime"/>
                <SolidColorBrush Color="Yellow"/>
                <SolidColorBrush Color="OrangeRed"/>
            </chart:ChartColorModel.CustomBrushes>
        </chart:ChartColorModel>
    </chart:SfSurfaceChart.ColorModel>
</chart:SfSurfaceChart>

Pattern 5: Wireframe Visualization

When user needs to see the mesh structure:

chart.Type = SurfaceType.WireframeSurface;
chart.WireframeStroke = new SolidColorBrush(Colors.Green);
chart.WireframeStrokeThickness = 1;

Key Properties

Essential Properties

  • Type - Surface type (Surface, WireframeSurface, Contour, WireframeContour)
  • ItemsSource - Data collection for binding
  • XBindingPath, YBindingPath, ZBindingPath - Property paths for X, Y, Z values
  • RowSize, ColumnSize - Grid dimensions for data
  • Data - Direct data collection using AddPoints method

Visual Properties

  • Header - Chart title
  • Rotate - Rotation angle (0-360)
  • Tilt - Tilt angle for viewing perspective
  • Palette - Color scheme (Metro, AutumnBrights, FloraHues, etc.)
  • ColorBar - Value range indicator with colors

Interaction Properties

  • EnableRotation - Allow mouse-drag rotation
  • EnableZooming - Allow mouse-wheel zoom
  • ZoomLevel - Programmatic zoom level

Axis Properties

  • XAxis, YAxis, ZAxis - Axis configuration objects
  • Each axis supports: Header, LabelFormat, Minimum, Maximum, Interval, etc.

Customization Properties

  • CameraProjection - Perspective or Orthographic view
  • LeftWallBrush, BottomWallBrush, BackWallBrush - Wall colors
  • WallThickness - Wall border thickness
  • WireframeStroke, WireframeStrokeThickness - Wireframe appearance
  • ApplyGradientBrush - Enable gradient coloring
  • BrushCount - Number of color steps in gradient

Common Use Cases

Use Case 1: Scientific Data Visualization

Scenario: Researcher needs to visualize experimental data with X, Y coordinates and measured Z values.

Approach: Use ItemsSource binding with data collection, configure appropriate axes with scientific notation, and use a clear color palette like Metro or BlueChrome for professional appearance.

Use Case 2: Mathematical Function Plotting

Scenario: Student needs to visualize a 3D mathematical function like z = f(x, y).

Approach: Generate data programmatically using nested loops, use Data.AddPoints for direct input, enable rotation for exploration, and use wireframe or standard surface type for clarity.

Use Case 3: Topographical Mapping

Scenario: Display elevation data or terrain visualization.

Approach: Use Contour type for 2D representation with color gradients, or Surface type for 3D terrain. Apply earth-toned custom palette (green-brown-white for elevation levels).

Use Case 4: Heat Map Visualization

Scenario: Show intensity or value distribution across two dimensions.

Approach: Use Contour type with Rotate="0" for flat view, configure ColorBar with ShowLabel="True", and apply gradient brushes with appropriate BrushCount for smooth transitions.

Use Case 5: Interactive Data Exploration

Scenario: User needs to explore complex 3D dataset from multiple angles.

Approach: Enable both EnableRotation and EnableZooming, provide initial good viewing angle with Rotate and Tilt, and consider adding UI controls to switch between Surface types dynamically.

Use Case 6: Engineering Analysis

Scenario: Visualize stress, temperature, or pressure distribution in engineering simulations.

Approach: Use Surface or WireframeSurface type, apply custom color palette matching engineering standards (e.g., blue for cold/low, red for hot/high), and configure axes with appropriate units and precision.


Next Steps

  1. For initial setup: Read getting-started.md
  2. To choose visualization type: Read surface-types.md
  3. For data integration: Read data-binding.md
  4. For detailed customization: Navigate to specific feature references as needed

Remember: SfSurfaceChart requires data in grid format with consistent RowSize and ColumnSize. The order of data points matters - they should be organized in row-major or column-major format for proper surface rendering.

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/syncfusion/wpf-ui-components-skills/syncfusion-wpf-surface-chart">View syncfusion-wpf-surface-chart on skillZs</a>