Class PanelLayoutSpot
Arranges GraphObjects about a main element using the Alignment and AlignmentFocus properties; the main element is the first GraphObject with IsPanelMain set to true, or else the first GraphObject if none have that property set to true.
Namespace: Northwoods.Go.PanelLayouts
Assembly: Northwoods.GoDiagram.Avalonia.dll
Syntax
public sealed class PanelLayoutSpot : PanelLayout
Properties
Instance
This holds a static singleton instance of the PanelLayout, used as a value for Type.
Declaration
public static PanelLayoutSpot Instance { get; }
Property Value
Type | Description |
---|---|
PanelLayoutSpot |
Remarks
These static PanelLayouts are used when defining templates:
// define a simple Node template
myDiagram.NodeTemplate =
new Node(PanelLayoutAuto.Instance) // the Shape will go around the TextBlock
.Add(
new Shape("RoundedRectangle") {
StrokeWidth = 0, Fill = "white"
}.Bind("Fill", "Color"), // Shape.Fill is bound to Node.Data.Color
new TextBlock {
Margin = 8, // Specify a margin to add some room around the text
Font = "bold 14px sans-serif", Stroke = "#333"
}.Bind("Text", "Key") // TextBlock.Text is bound to Node.Data.Key
);
Methods
Arrange(Panel, IList<GraphObject>, Rect)
Arrange children in spot panel.
Declaration
public override void Arrange(Panel panel, IList<GraphObject> children, Rect union)
Parameters
Type | Name | Description |
---|---|---|
Panel | panel | |
IList<GraphObject> | children | |
Rect | union |
Overrides
Measure(Panel, double, double, IList<GraphObject>, ref Rect, double, double)
Elements measured according to alignment spots around a main element.
Declaration
public override void Measure(Panel panel, double width, double height, IList<GraphObject> children, ref Rect union, double minw, double minh)
Parameters
Type | Name | Description |
---|---|---|
Panel | panel | |
double | width | |
double | height | |
IList<GraphObject> | children | |
Rect | union | |
double | minw | |
double | minh |