Skip to main content

syncfusion-wpf-smith-chart

Implement and configure Syncfusion WPF SmithChart (SfSmithChart) component for visualizing impedance and admittance in transmission line applications. Use this when working with high-frequency circuit analysis, RF engineering, or telecommunications data. This skill covers series configuration, dual-axis systems, data markers, legends, appearance customization, and interactive features.

معلومات المصدر

المستودع
syncfusion/wpf-ui-components-skills
آخر نشاط في المصدر
٦ يوليو ٢٠٢٦ في ٠٧:٢١
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٥
التفرعات
٢

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
7 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
syncfusion-wpf-smith-chart
description
Implement and configure Syncfusion WPF SmithChart (SfSmithChart) component for visualizing impedance and admittance in transmission line applications. Use this when working with high-frequency circuit analysis, RF engineering, or telecommunications data. This skill covers series configuration, dual-axis systems, data markers, legends, appearance customization, and interactive features.
metadata
{"author":"Syncfusion Inc","version":"34.1.29"}
# Implementing Syncfusion WPF SmithCharts ## When to Use This Skill Use this skill **immediately** when the user needs to: - Implement a **Syncfusion WPF SmithChart** (SfSmithChart) component - Visualize **impedance or admittance** data for transmission lines - Create charts for **high-frequency circuit applications** - Plot data with **resistance (horizontal) and reactance (radial) axes** - Add **line series** with data markers and labels - Configure **dual-axis systems** (resistance and reactance) - Customize chart **appearance, palettes, and themes** - Implement **interactive features** like tooltips - Switch between **Impedance and Admittance** rendering types - Work with **legends** for multiple series visualization - Handle **transmission line data visualization** ## Component Overview **SfSmithChart** is a specialized data visualization component for high-frequency circuit applications. It plots transmission line parameters using two sets of circles representing normalized resistance and reactance values. **Key Capabilities:** - **Dual-Axis System**: Horizontal (Resistance) and Radial (Reactance) axes - **Line Series Visualization**: Plot data with customizable line series - **Data Markers**: Multiple marker shapes with custom templates - **Data Labels**: Automatic label positioning with collision detection - **Interactive Legend**: Toggle series visibility, multiple positioning options - **Two Rendering Modes**: Impedance (default) and Admittance - **Rich Customization**: Palettes, colors, gridlines, axis styling - **Tooltips**: Interactive tooltips with custom templates - **Animation Support**: Smooth series animations ## Documentation and Navigation Guide ### Getting Started and Installation 📄 **Read:** [references/getting-started.md](references/getting-started.md) **Read this when the user needs to:** - Install and set up the SmithChart component - Create a SmithChart from XAML or code-behind - Add assembly references (Syncfusion.SfSmithChart.WPF) - Initialize the chart with basic configuration - Create data models for transmission line data - Add header, axes, series, and legend - Apply themes (SfSkinManager) - See complete working examples ### Series Configuration 📄 **Read:** [references/series-configuration.md](references/series-configuration.md) **Read this when the user needs to:** - Configure LineSeries for data visualization - Set up data binding (ItemsSource, ResistancePath, ReactancePath) - Customize series appearance (Interior, StrokeThickness) - Enable series animation (EnableAnimation, AnimationDuration) - Control series visibility programmatically - Handle multiple series in one chart - Customize data plotting order (ArrangeByIndex) - Apply series-specific palettes ### Axes Configuration 📄 **Read:** [references/axes-configuration.md](references/axes-configuration.md) **Read this when the user needs to:** - Configure Horizontal Axis (Resistance) properties - Configure Radial Axis (Reactance) properties - Customize major and minor gridlines - Control gridline visibility and count - Style axis lines and gridlines - Position axis labels (Inside/Outside) - Handle label intersection and overlap - Respond to axis label events (LabelCreated) ### Data Markers and Labels 📄 **Read:** [references/data-markers-and-labels.md](references/data-markers-and-labels.md) **Read this when the user needs to:** - Add markers to data points (ShowMarker, MarkerType) - Use built-in marker shapes (Circle, Rectangle, Diamond, etc.) - Customize marker size, color, and stroke - Create custom marker templates - Enable data labels (ShowLabel) - Handle automatic label positioning and collision - Style data labels (LabelStyle) - Create custom label templates (LabelTemplate) ### Legend and Appearance 📄 **Read:** [references/legend-and-appearance.md](references/legend-and-appearance.md) **Read this when the user needs to:** - Add and configure chart legend - Position legend (Docked or Floating) - Customize legend icons and appearance - Toggle series visibility from legend - Apply color palettes (Metro, BlueChrome, etc.) - Customize chart area (Background, BorderBrush) - Set series-specific palettes - Control circle radius - Get chart properties (AreaBounds, CenterPoint, Radius) - Style legend items (FontSize, colors, spacing) ### Rendering Types and User Interactions 📄 **Read:** [references/rendering-and-interactions.md](references/rendering-and-interactions.md) **Read this when the user needs to:** - Understand Impedance vs Admittance rendering - Switch rendering types (RenderingType property) - Enable tooltips for data points (ShowToolTip) - Configure tooltip duration - Create custom tooltip templates - Implement interactive features ## Quick Start Example Here's a minimal example to create a functional SmithChart with transmission line data: ### XAML Approach ```xml <Window xmlns:syncfusion="clr-namespace:Syncfusion.UI.Xaml.SmithChart;assembly=Syncfusion.SfSmithChart.WPF"> <Grid> <syncfusion:SfSmithChart Header="Impedance Transmission" Height="400" Width="500"> <!-- LineSeries with data binding --> <syncfusion:LineSeries ResistancePath="Resistance" ReactancePath="Reactance" ItemsSource="{Binding Data}" Label="TransmissionLine" ShowMarker="True"> </syncfusion:LineSeries> <!-- Horizontal (Resistance) Axis --> <syncfusion:SfSmithChart.HorizontalAxis> <syncfusion:HorizontalAxis FontSize="11"/> </syncfusion:SfSmithChart.HorizontalAxis> <!-- Radial (Reactance) Axis --> <syncfusion:SfSmithChart.RadialAxis> <syncfusion:RadialAxis FontSize="11"/> </syncfusion:SfSmithChart.RadialAxis> <!-- Legend --> <syncfusion:SfSmithChart.Legend> <syncfusion:SmithChartLegend/> </syncfusion:SfSmithChart.Legend> </syncfusion:SfSmithChart> </Grid> </Window> ``` ### Code-Behind Approach ```csharp using Syncfusion.UI.Xaml.SmithChart; // Create SmithChart SfSmithChart chart = new SfSmithChart(); chart.Header = "Impedance Transmission"; // Configure axes chart.HorizontalAxis = new HorizontalAxis { FontSize = 11 }; chart.RadialAxis = new RadialAxis { FontSize = 11 }; // Add series LineSeries series = new LineSeries { ItemsSource = Data, ResistancePath = "Resistance", ReactancePath = "Reactance", Label = "TransmissionLine", ShowMarker = true }; chart.Series.Add(series); // Add legend chart.Legend = new SmithChartLegend(); // Add to layout this.Content = chart; ``` ### Data Model ```csharp public class TransmissionData { public double Resistance { get; set; } public double Reactance { get; set; } } // Sample data ObservableCollection<TransmissionData> Data = new ObservableCollection<TransmissionData> { new TransmissionData { Resistance = 0, Reactance = 0.05 }, new TransmissionData { Resistance = 0.3, Reactance = 0.1 }, new TransmissionData { Resistance = 1.0, Reactance = 0.4 }, new TransmissionData { Resistance = 2.0, Reactance = 0.5 } }; ``` ## Common Patterns ### Pattern 1: Multiple Series Comparison ```csharp // Add multiple series for comparison LineSeries series1 = new LineSeries { ItemsSource = Data1, ResistancePath = "Resistance", ReactancePath = "Reactance", Label = "Transmission-1", ShowMarker = true }; LineSeries series2 = new LineSeries { ItemsSource = Data2, ResistancePath = "Resistance", ReactancePath = "Reactance", Label = "Transmission-2", ShowMarker = true, Interior = new SolidColorBrush(Colors.Orange) }; chart.Series.Add(series1); chart.Series.Add(series2); ``` ### Pattern 2: Enhanced Visual Feedback ```csharp // Series with markers, labels, and tooltip LineSeries series = new LineSeries { ShowMarker = true, MarkerType = MarkerType.Circle, MarkerHeight = 10, MarkerWidth = 10, ShowToolTip = true, ToolTipDuration = TimeSpan.FromSeconds(3), StrokeThickness = 2, EnableAnimation = true, AnimationDuration = TimeSpan.FromSeconds(1) }; series.DataLabel.ShowLabel = true; ``` ### Pattern 3: Custom Appearance ```csharp // Apply custom palette and styling chart.ColorModel = new SmithChartColorModel { Palette = ColorPalette.BlueChrome }; chart.Background = new SolidColorBrush(Colors.WhiteSmoke); chart.ChartAreaBackground = new SolidColorBrush(Colors.White); chart.ChartAreaBorderBrush = new SolidColorBrush(Colors.Gray); chart.ChartAreaBorderThickness = new Thickness(1); chart.Radius = 0.9; // 90% of plot area ``` ### Pattern 4: Admittance Rendering ```csharp // Switch to Admittance mode for different visualization chart.RenderingType = RenderingType.Admittance; // Data is now rendered from left to right ``` ## Key Properties ### SfSmithChart Core Properties | Property | Type | Description | |----------|------|-------------| | `Header` | object | Chart title/header text | | `HorizontalAxis` | HorizontalAxis | Resistance axis configuration | | `RadialAxis` | RadialAxis | Reactance axis configuration | | `Series` | ObservableCollection | Collection of chart series | | `Legend` | SmithChartLegend | Legend configuration | | `RenderingType` | RenderingType | Impedance or Admittance mode | | `Radius` | double | Chart circle radius (0.1 to 1) | | `ColorModel` | SmithChartColorModel | Palette and color settings | | `ChartAreaBackground` | Brush | Chart plotting area background | ### LineSeries Key Properties | Property | Type | Description | |----------|------|-------------| | `ItemsSource` | IEnumerable | Data source for the series | | `ResistancePath` | string | Property path for resistance values | | `ReactancePath` | string | Property path for reactance values | | `Label` | string | Series name (shows in legend) | | `Interior` | Brush | Line color | | `StrokeThickness` | double | Line thickness | | `ShowMarker` | bool | Display markers at data points | | `MarkerType` | MarkerType | Marker shape (Circle, Rectangle, etc.) | | `ShowToolTip` | bool | Enable tooltips on hover | | `EnableAnimation` | bool | Animate series on load | | `IsSeriesVisible` | bool | Show/hide series | ### Axis Common Properties | Property | Type | Description | |----------|------|-------------| | `ShowMajorGridlines` | bool | Display major gridlines | | `ShowMinorGridlines` | bool | Display minor gridlines | | `MinorGridlinesCount` | int | Number of minor gridlines (default: 8) | | `MajorGridlineStyle` | Style | Style for major gridlines | | `MinorGridlineStyle` | Style | Style for minor gridlines | | `ShowAxisLine` | bool | Display axis line | | `AxisLineStyle` | Style | Style for axis line | | `LabelPlacement` | LabelPlacement | Inside or Outside positioning | | `LabelIntersectAction` | LabelIntersectActions | Handle overlapping labels (Hide/None) | ## Common Use Cases ### Use Case 1: Basic Transmission Line Visualization **Goal**: Display impedance data for a transmission line **Approach**: - Create data model with Resistance and Reactance properties - Set up basic SmithChart with header - Add LineSeries with data binding - Configure both axes - Add legend for reference **Reference**: See [getting-started.md](references/getting-started.md) ### Use Case 2: Comparing Multiple Transmission Lines **Goal**: Compare impedance characteristics of different transmission lines **Approach**: - Add multiple LineSeries with different ItemsSource - Assign unique Label to each series - Use different Interior colors for distinction - Enable legend for series identification - Consider using markers for clarity **Reference**: See [series-configuration.md](references/series-configuration.md) and [legend-and-appearance.md](references/legend-and-appearance.md) ### Use Case 3: Detailed Data Point Analysis **Goal**: Provide detailed information about each data point **Approach**: - Enable ShowMarker for visual data points - Enable data labels (DataLabel.ShowLabel) - Configure tooltips (ShowToolTip) - Customize marker and label appearance - Consider custom templates for specialized information **Reference**: See [data-markers-and-labels.md](references/data-markers-and-labels.md) and [rendering-and-interactions.md](references/rendering-and-interactions.md) ### Use Case 4: Admittance Analysis **Goal**: Visualize admittance instead of impedance **Approach**: - Set RenderingType to Admittance - Data automatically renders left to right - Axis labels adjust automatically - All other features remain available **Reference**: See [rendering-and-interactions.md](references/rendering-and-interactions.md) ### Use Case 5: Professional Report Visualization **Goal**: Create publication-ready SmithChart with custom branding **Approach**: - Apply custom ColorModel palette - Customize chart area and background colors - Style axes with custom gridline styles - Configure legend with custom icons - Adjust Radius for optimal sizing - Apply themes using SfSkinManager **Reference**: See [legend-and-appearance.md](references/legend-and-appearance.md) and [getting-started.md](references/getting-started.md) ## Edge Cases and Troubleshooting ### Assembly Reference Issues - Ensure Syncfusion.SfSmithChart.WPF assembly is properly referenced - Check .NET Framework version compatibility - Verify xmlns namespace declaration in XAML ### Data Not Displaying - Verify ItemsSource is properly bound - Check ResistancePath and ReactancePath match property names exactly - Ensure DataContext is set for data binding - Verify data collection is not empty ### Overlapping Labels - Use LabelIntersectAction property to control overlap behavior - Labels automatically reposition when ShowLabel is true - Consider reducing data points or adjusting label templates ### Performance with Large Datasets - Use ArrangeByIndex = false for sorted data (default behavior) - Enable animation selectively for better initial load - Consider data sampling for extremely large datasets ## Summary The Syncfusion WPF SmithChart is a specialized component for high-frequency circuit applications, particularly for visualizing transmission line impedance and admittance data. It features a dual-axis system, rich customization options, and interactive features suitable for engineering and scientific applications. Always start with the getting-started reference for initial setup, then explore specific features as needed for your use case.
عرض على GitHub