syncfusion-wpf-surface-chart — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited syncfusion-wpf-surface-chart (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
The SfSurfaceChart is a three-dimensional surface that connects a set of data points.
Use this skill when the user needs to:
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.
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:
Visual Elements:
📄 Read: references/getting-started.md
📄 Read: references/surface-types.md
📄 Read: references/data-binding.md
📄 Read: references/axes-configuration.md
📄 Read: references/surface-area.md
📄 Read: references/color-bar.md
📄 Read: references/palettes.md
📄 Read: references/user-interactions.md
📄 Read: references/troubleshooting.md
<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
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;
}
}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);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 pointsWhen 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>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>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>When user needs to see the mesh structure:
chart.Type = SurfaceType.WireframeSurface;
chart.WireframeStroke = new SolidColorBrush(Colors.Green);
chart.WireframeStrokeThickness = 1;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.
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.
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).
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.
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.
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.
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.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.