The WinForms package ships two layers: SkiaHostControl, the full diagram editor surface (canvas, palette, property grid, export), and a wrapper control for every Material component so the same visuals can be used in ordinary WinForms layouts. All wrappers derive from SkiaControl.

Canvas Host

The complete diagram editing surface.

SkiaHostControl

Host control that provides a Skia drawing surface and a DrawingManager to host Skia components.

MemberKindDescription
int ReloadExtensions()MethodReloads extensions from the install root and refreshes their palette entries. Returns the number of extension components added.
Beep.Skia.DrawingManager DrawingManagerPropertyGets or sets the drawing manager.
SkiaHostControl()MethodDiagram editor canvas. Tab cycles through components; arrow keys move the selection; Delete removes it.
void RebuildCommentPins()MethodRebuilds comment pins from the current components and comments.
void RefreshCommentPins()MethodRebuilds comment pins and repaints the canvas.
Beep.Skia.Collaboration.DiagramComment AddCommentToSelection(string text, string authorId = "local")MethodAdds a comment anchored to the first selected component. Returns null when nothing is selected or the user cannot comment.
bool ResolveComment(string commentId, string userId = "local")MethodResolves a comment by id and repaints.
void ExportToPng(string filePath, float scale = 2f)MethodExports the current diagram to a PNG file.
void ExportToSvg(string filePath)MethodExports the current diagram to an SVG file with a white background.
void ExportToPdf(string filePath)MethodExports the current diagram to a PDF file.
void PrintWithPreview()MethodShows a print preview for the current diagram.
void BeginInit()MethodGets or sets the begin init.
SkiaComponentDescriptorCollection DesignTimeComponentsPropertyGets or sets the design time components.
bool BlockOverlappingDropsPropertyIf true, component creation will be blocked when the new component's bounds overlap an existing component. Default false: overlaps allowed (prevents silent disappearance when dropping in same area).
Beep.Skia.SkiaComponent CreateAndAddComponent(Type componentType, float x, float y, float width, float height, string name)MethodGets or sets the create and add component.
Beep.Skia.SkiaComponent CreateAndAddComponentFromDescriptor(SkiaComponentDescriptor desc)MethodGets or sets the create and add component from descriptor.

Control Base

Common base for every wrapper control.

SkiaControl

MemberKindDescription
SkiaComponent SkiaComponentPropertyGets or sets the skia component.
SkiaControl()MethodInitializes a new instance of the SkiaControl class.

Input Wrappers

WinForms wrappers for the input components.

SkiaTextBox

Design-time wrapper that creates a Skia TextBox component on the Skia host

MemberKindDescription
SkiaTextBox()MethodInitializes a new instance of the SkiaTextBox class.

SkiaTextArea

Skia TextArea wrapper (minimal)

MemberKindDescription
SkiaTextArea()MethodInitializes a new instance of the SkiaTextArea class.

SkiaCheckBox

Design-time wrapper that creates a Skia Checkbox component on the Skia host

MemberKindDescription
SkiaCheckBox()MethodInitializes a new instance of the SkiaCheckBox class.

SkiaComboBox

Design-time wrapper that creates a Skia Dropdown component on the Skia host

MemberKindDescription
SkiaComboBox()MethodInitializes a new instance of the SkiaComboBox class.

SkiaDatePicker

Design-time wrapper that creates a Skia DatePicker component on the Skia host

MemberKindDescription
SkiaDatePicker()MethodInitializes a new instance of the SkiaDatePicker class.

SkiaSearch

Skia Search wrapper (minimal)

MemberKindDescription
SkiaSearch()MethodInitializes a new instance of the SkiaSearch class.

SkiaSlider

Design-time wrapper that creates a Skia Slider component on the Skia host

MemberKindDescription
SkiaSlider()MethodInitializes a new instance of the SkiaSlider class.

SkiaSwitch

Design-time wrapper that creates a Skia Switch component on the Skia host

MemberKindDescription
SkiaSwitch()MethodInitializes a new instance of the SkiaSwitch class.

SkiaToggleButton

Design-time wrapper that creates a Skia ToggleButton component on the Skia host

MemberKindDescription
SkiaToggleButton()MethodInitializes a new instance of the SkiaToggleButton class.

Action Wrappers

Buttons and button groups.

SkiaButton

Design-time wrapper that creates a Skia Button component on the Skia host

MemberKindDescription
SkiaButton()MethodInitializes a new instance of the SkiaButton class.

SkiaSplitButton

Skia SplitButton wrapper (minimal)

MemberKindDescription
SkiaSplitButton()MethodInitializes a new instance of the SkiaSplitButton class.

SkiaFloatingActionButton

Design-time wrapper that creates a Skia FloatingActionButton component on the Skia host

MemberKindDescription
SkiaFloatingActionButton()MethodInitializes a new instance of the SkiaFloatingActionButton class.

SkiaFabMenu

Design-time wrapper that creates a Skia FabMenu component on the Skia host

MemberKindDescription
SkiaFabMenu()MethodInitializes a new instance of the SkiaFabMenu class.

SkiaSegmentedButtons

Skia SegmentedButtons wrapper (minimal)

MemberKindDescription
SkiaSegmentedButtons()MethodInitializes a new instance of the SkiaSegmentedButtons class.

SkiaMenuButton

Skia MenuButton wrapper (minimal)

MemberKindDescription
SkiaMenuButton()MethodInitializes a new instance of the SkiaMenuButton class.

Display Wrappers

Cards, panels, labels and indicators.

SkiaCard

Design-time wrapper that creates a Skia Card component on the Skia host

MemberKindDescription
SkiaCard()MethodInitializes a new instance of the SkiaCard class.

SkiaPanel

Design-time wrapper that creates a Skia Panel component on the Skia host

MemberKindDescription
SkiaPanel()MethodInitializes a new instance of the SkiaPanel class.

SkiaLabel

Design-time wrapper that creates a Skia Label component on the Skia host

MemberKindDescription
SkiaLabel()MethodInitializes a new instance of the SkiaLabel class.

SkiaProgressBar

Skia ProgressBar wrapper (minimal)

MemberKindDescription
SkiaProgressBar()MethodInitializes a new instance of the SkiaProgressBar class.

SkiaSpinner

Design-time wrapper that creates a Skia Spinner component on the Skia host

MemberKindDescription
SkiaSpinner()MethodInitializes a new instance of the SkiaSpinner class.

SkiaSvgImage

Skia SvgImage wrapper (minimal)

MemberKindDescription
SkiaSvgImage()MethodInitializes a new instance of the SkiaSvgImage class.

SkiaList

Design-time wrapper that creates a Skia List component on the Skia host

MemberKindDescription
SkiaList()MethodInitializes a new instance of the SkiaList class.

SkiaDataGrid

Design-time wrapper that creates a Skia DataGrid component on the Skia host

MemberKindDescription
SkiaDataGrid()MethodInitializes a new instance of the SkiaDataGrid class.

SkiaTabs

Design-time wrapper that creates a Skia Tabs component on the Skia host

MemberKindDescription
SkiaTabs()MethodInitializes a new instance of the SkiaTabs class.

Designer Support

Design-time integration and property wrappers.

SkiaControlDesigner

MemberKindDescription
override void Initialize(IComponent component)MethodGets or sets the initialize.

SkiaHostControlDesigner

Design-time designer for SkiaHostControl providing smart-tag verbs.

MemberKindDescription
override DesignerActionListCollection ActionListsPropertyGets or sets the action lists.
SkiaHostControl HostControlPropertyGets or sets the host control.

SkiaComponentPropertyWrapper

Wraps a SkiaComponent to expose its NodeProperties in the Visual Studio PropertyGrid. Implements ICustomTypeDescriptor so the VS designer can display editable properties. Edits are applied back to the component (public setters) and reported through the change callback.

MemberKindDescription
SkiaComponent ComponentPropertyGets or sets the component.
string ComponentTypeNamePropertyGets or sets the component type name.
string ComponentNamePropertyGets or sets the component name.
SkiaComponentPropertyWrapper(SkiaComponent component, Action<SkiaComponent> onChanged = null)MethodInitializes a new instance of the SkiaComponentPropertyWrapper class.
override string ToString()MethodGets or sets the to string.
void Dispose()MethodGets or sets the dispose.

SkiaMultiComponentWrapper

PropertyGrid wrapper for multiple selected components: exposes geometry plus the NodeProperties common to every selected component; edits apply to all of them.

MemberKindDescription
IReadOnlyList<SkiaComponent> ComponentsPropertyGets or sets the components.
int CountPropertyGets or sets the count.
SkiaMultiComponentWrapper(IReadOnlyList<SkiaComponent> components, Action<IReadOnlyList<SkiaComponent>> onChanged = null)MethodInitializes a new instance of the SkiaMultiComponentWrapper class.
override string ToString()MethodGets or sets the to string.
void Dispose()MethodGets or sets the dispose.

SkiaNodePropertyDescriptor

Property descriptor for a single SkiaComponent NodeProperty. Supports enum choices, simple type conversion, and SKColor hex editing.

MemberKindDescription
SkiaNodePropertyDescriptor(string name, Type type, Func<object> getter, Action<object> setter, string category, string description, string[] choices = null)MethodInitializes a new instance of the SkiaNodePropertyDescriptor class.
override Type ComponentTypePropertyGets or sets the component type.
override bool IsReadOnlyPropertyGets or sets the is read only.
override Type PropertyTypePropertyGets or sets the property type.
override string DescriptionPropertyGets or sets the description.
override string CategoryPropertyGets or sets the category.
override bool CanResetValue(object component)MethodGets or sets the can reset value.
override void ResetValue(object component) { }MethodGets or sets the reset value.
override bool ShouldSerializeValue(object component)MethodGets or sets the should serialize value.
override object GetValue(object component)MethodGets or sets the get value.
override void SetValue(object component, object value)MethodGets or sets the set value.
override TypeConverter ConverterPropertyGets or sets the converter.

SkiaColorConverter

TypeConverter for SKColor: edits colors as "#AARRGGBB" hex strings in the PropertyGrid.

MemberKindDescription
override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)MethodGets or sets the can convert from.
override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType)MethodGets or sets the can convert to.
override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)MethodGets or sets the convert from.
override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)MethodGets or sets the convert to.
static SKColor Parse(string text)MethodParses "#AARRGGBB", "#RRGGBB", or a named color; invalid input returns transparent.
static string Format(SKColor color)MethodFormats a color as "#AARRGGBB".

SkiaEnumConverter

TypeConverter that provides a dropdown list of string choices.

MemberKindDescription
SkiaEnumConverter(string[] values)MethodInitializes a new instance of the SkiaEnumConverter class.
override bool GetStandardValuesSupported(ITypeDescriptorContext context)MethodGets or sets the get standard values supported.
override bool GetStandardValuesExclusive(ITypeDescriptorContext context)MethodGets or sets the get standard values exclusive.
override StandardValuesCollection GetStandardValues(ITypeDescriptorContext context)MethodGets or sets the get standard values.