API Reference
- Alignment Enum
- BaseConnection Class
- BoxValue Class
- CircuitConnection Class
- Connection Class
- Connection Class
- ConnectionDirection Enum
- ConnectionEventArgs Class
- ConnectionEventHandler Delegate
- ConnectionOffsetMode Enum
- Connector Class
- Connector Class
- ConnectorEventArgs Class
- ConnectorEventHandler Delegate
- ContainerDefaultState Class
- ContainerDraggingState Class
- ContainerState Class
- DecoratorContainer Class
- EditorCommands Class
- EditorDefaultState Class
- EditorGestures Class
- EditorPanningState Class
- EditorSelectingState Class
- EditorState Class
- GeneratedInternalTypeHelper Class
- GroupingMovementMode Enum
- GroupingNode Class
- GroupingNode Class
- INodifyCanvasItem Interface
- ItemContainer Class
- ItemContainer Class
- KnotNode Class
- LineConnection Class
- Match Enum
- MultiGesture Class
- Node Class
- NodeInput Class
- NodeOutput Class
- NodifyCanvas Class
- NodifyEditor Class
- PendingConnection Class
- PendingConnectionEventArgs Class
- PendingConnectionEventHandler Delegate
- PreviewLocationChanged Delegate
- ResizeEventArgs Class
- ResizeEventHandler Delegate
- Selection Class
- SelectionHelper Class
- SelectionType Enum
- StateNode Class
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → ValueType → Enum → Alignment
public enum Alignment
public const Alignment Bottom = 2;
Field Value
public const Alignment Center = 5;
Field Value
public const Alignment Left = 1;
Field Value
public const Alignment Middle = 4;
Field Value
public const Alignment Right = 3;
Field Value
public const Alignment Top = 0;
Field Value
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → DispatcherObject → DependencyObject → Visual → UIElement → FrameworkElement → Shape → BaseConnection
Derived: LineConnection, Connection
References: ConnectionEventHandler, ConnectionOffsetMode, ConnectionDirection, LineConnection, ConnectionEventArgs, NodifyEditor
Represents the base class for shapes that are drawn from a BaseConnection.Source point to a BaseConnection.Target point.
public abstract class BaseConnection : Shape
protected BaseConnection();
public static DependencyProperty ArrowSizeProperty;
Field Value
public static DependencyProperty DirectionProperty;
Field Value
public static DependencyProperty DisconnectCommandProperty;
Field Value
public static RoutedEvent DisconnectEvent;
Field Value
public static DependencyProperty OffsetModeProperty;
Field Value
public static DependencyProperty SourceOffsetProperty;
Field Value
public static DependencyProperty SourceProperty;
Field Value
public static DependencyProperty SpacingProperty;
Field Value
public static DependencyProperty SplitCommandProperty;
Field Value
public static RoutedEvent SplitEvent;
Field Value
public static DependencyProperty TargetOffsetProperty;
Field Value
public static DependencyProperty TargetProperty;
Field Value
Gets a vector that has its coordinates set to 0.
protected static Vector ZeroVector;
Field Value
Gets or sets the size of the arrow head.
public Size ArrowSize { get; set; }
Property Value
protected override Geometry DefiningGeometry { get; set; }
Property Value
Gets or sets the direction in which this connection is oriented.
public ConnectionDirection Direction { get; set; }
Property Value
Removes this connection. Triggered by Nodify.EditorGestures.Connection.Disconnect gesture. Parameter is the location where the disconnect ocurred.
public ICommand DisconnectCommand { get; set; }
Property Value
Gets or sets the ConnectionOffsetMode to apply when drawing the connection.
public ConnectionOffsetMode OffsetMode { get; set; }
Property Value
Gets or sets the start point of this connection.
public Point Source { get; set; }
Property Value
Gets or sets the offset from the BaseConnection.Source point.
public Size SourceOffset { get; set; }
Property Value
The distance between the start point and the where the angle breaks.
public double Spacing { get; set; }
Property Value
Splits the connection. Triggered by Nodify.EditorGestures.Connection.Split gesture. Parameter is the location where the splitting ocurred.
public ICommand SplitCommand { get; set; }
Property Value
Gets or sets the end point of this connection.
public Point Target { get; set; }
Property Value
Gets or sets the offset from the BaseConnection.Target point.
public Size TargetOffset { get; set; }
Property Value
protected virtual void DrawArrowGeometry(StreamGeometryContext context, Point source, Point target);
Parameters
context
StreamGeometryContext
source
Point
target
Point
protected virtual ValueTuple<Point, Point> DrawLineGeometry(StreamGeometryContext context, Point source, Point target);
Parameters
context
StreamGeometryContext
source
Point
target
Point
Returns
protected virtual ValueTuple<Point, Point> GetArrowHeadPoints(Point source, Point target);
Parameters
source
Point
target
Point
Returns
Gets the resulting offset after applying the BaseConnection.OffsetMode.
protected virtual ValueTuple<Vector, Vector> GetOffset();
Returns
protected override void OnMouseDown(MouseButtonEventArgs e);
Parameters
protected override void OnMouseUp(MouseButtonEventArgs e);
Parameters
Triggered by the Nodify.EditorGestures.Connection.Disconnect gesture.
public event ConnectionEventHandler Disconnect;
Event Type
Triggered by the Nodify.EditorGestures.Connection.Split gesture.
public event ConnectionEventHandler Split;
Event Type
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → BoxValue
public static class BoxValue
public static object ArrowSize;
Field Value
public static object Double0;
Field Value
public static object Double1;
Field Value
public static object Double1000;
Field Value
public static object Double2;
Field Value
public static object Double45;
Field Value
public static object DoubleHalf;
Field Value
public static object False;
Field Value
public static object Int0;
Field Value
public static object Int1;
Field Value
public static object Point;
Field Value
public static object Rect;
Field Value
public static object Size;
Field Value
public static object True;
Field Value
public static object UInt1;
Field Value
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → DispatcherObject → DependencyObject → Visual → UIElement → FrameworkElement → Shape → BaseConnection → LineConnection → CircuitConnection
Represents a line that is controlled by an angle.
public class CircuitConnection : LineConnection
public CircuitConnection();
public static DependencyProperty AngleProperty;
Field Value
protected const double Degrees = 0.017453292519943295d;
Field Value
The angle of the connection in degrees.
public double Angle { get; set; }
Property Value
protected override ValueTuple<Point, Point> DrawLineGeometry(StreamGeometryContext context, Point source, Point target);
Parameters
context
StreamGeometryContext
source
Point
target
Point
Returns
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → DispatcherObject → DependencyObject → Visual → UIElement → FrameworkElement → Shape → BaseConnection → Connection
References: Connector, NodifyEditor
Represents a quadratic curve.
public class Connection : BaseConnection
public Connection();
protected override ValueTuple<Point, Point> DrawLineGeometry(StreamGeometryContext context, Point source, Point target);
Parameters
context
StreamGeometryContext
source
Point
target
Point
Returns
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → Connection
public static class Connection
public static InputGesture Disconnect { get; set; }
Property Value
public static InputGesture Split { get; set; }
Property Value
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → ValueType → Enum → ConnectionDirection
References: BaseConnection, PendingConnection
The direction in which a connection is oriented.
public enum ConnectionDirection
From BaseConnection.Target to BaseConnection.Source.
public const ConnectionDirection Backward = 1;
Field Value
From BaseConnection.Source to BaseConnection.Target.
public const ConnectionDirection Forward = 0;
Field Value
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → EventArgs → RoutedEventArgs → ConnectionEventArgs
References: ConnectionEventHandler, BaseConnection
Provides data for BaseConnection related routed events.
public class ConnectionEventArgs : RoutedEventArgs
Initializes a new instance of the ConnectionEventArgs class using the specified ConnectionEventArgs.Connection.
public ConnectionEventArgs(object connection);
Parameters
connection
Object: The FrameworkElement.DataContext of a related BaseConnection.
Gets the FrameworkElement.DataContext of the BaseConnection associated with this event.
public object Connection { get; set; }
Property Value
Gets or sets the location where the connection should be split.
public Point SplitLocation { get; set; }
Property Value
protected override void InvokeEventHandler(Delegate genericHandler, object genericTarget);
Parameters
genericHandler
Delegate
genericTarget
Object
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → Delegate → MulticastDelegate → ConnectionEventHandler
References: ConnectionEventArgs, BaseConnection
Represents the method that will handle BaseConnection related routed events.
public delegate void ConnectionEventHandler(object sender, ConnectionEventArgs e);
Parameters
sender
Object: The object where the event handler is attached.
e
ConnectionEventArgs: The event data.
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → ValueType → Enum → ConnectionOffsetMode
References: BaseConnection
Specifies the offset type that can be applied to a BaseConnection using the BaseConnection.SourceOffset and the BaseConnection.TargetOffset values.
public enum ConnectionOffsetMode
The offset is applied in a circle around the point.
public const ConnectionOffsetMode Circle = 1;
Field Value
The offset is applied in a rectangle shape around the point, perpendicular to the edges.
public const ConnectionOffsetMode Edge = 3;
Field Value
No offset applied.
public const ConnectionOffsetMode None = 0;
Field Value
The offset is applied in a rectangle shape around the point.
public const ConnectionOffsetMode Rectangle = 2;
Field Value
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → Connector
References: PendingConnection, Connection, ItemContainer, NodifyEditor, ConnectorEventHandler, ConnectorEventArgs, PendingConnectionEventArgs, KnotNode, Node, NodeInput, NodeOutput, StateNode
Represents a connector control that can start and complete a PendingConnection. Has a Connector.ElementConnector that the Connector.Anchor is calculated from for the PendingConnection. Center of this control is used if missing.
public static class Connector
public static InputGesture CancelAction { get; set; }
Property Value
public static InputGesture Connect { get; set; }
Property Value
Triggered by the Nodify.EditorGestures.Connector.Disconnect gesture.
public static InputGesture Disconnect { get; set; }
Property Value
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → DispatcherObject → DependencyObject → Visual → UIElement → FrameworkElement → Control → Connector
Derived: NodeInput, NodeOutput, StateNode
References: PendingConnectionEventHandler, ConnectorEventHandler, ItemContainer
public class Connector : Control
public Connector();
public static DependencyProperty AnchorProperty;
Field Value
public static DependencyProperty DisconnectCommandProperty;
Field Value
public static RoutedEvent DisconnectEvent;
Field Value
protected const string ElementConnector = "PART_Connector";
Field Value
public static bool EnableOptimizations;
Field Value
public static DependencyProperty IsConnectedProperty;
Field Value
public static DependencyProperty IsPendingConnectionProperty;
Field Value
public static uint OptimizeMinimumSelectedItems;
Field Value
public static double OptimizeSafeZone;
Field Value
public static RoutedEvent PendingConnectionCompletedEvent;
Field Value
public static RoutedEvent PendingConnectionDragEvent;
Field Value
public static RoutedEvent PendingConnectionStartedEvent;
Field Value
public static bool AllowPendingConnectionCancellation { get; set; }
Property Value
public Point Anchor { get; set; }
Property Value
protected ItemContainer Container { get; set; }
Property Value
public ICommand DisconnectCommand { get; set; }
Property Value
public static bool EnableStickyConnections { get; set; }
Property Value
public bool IsConnected { get; set; }
Property Value
public bool IsPendingConnection { get; protected set; }
Property Value
protected FrameworkElement Thumb { get; set; }
Property Value
public override void OnApplyTemplate();
protected virtual void OnConnectorDrag(Vector offset);
Parameters
offset
Vector
protected virtual void OnConnectorDragCompleted(bool cancel = false);
Parameters
cancel
Boolean
protected virtual void OnConnectorDragStarted();
protected virtual void OnDisconnect();
protected override void OnKeyUp(KeyEventArgs e);
Parameters
protected override void OnLostMouseCapture(MouseEventArgs e);
Parameters
protected override void OnMouseDown(MouseButtonEventArgs e);
Parameters
protected override void OnMouseMove(MouseEventArgs e);
Parameters
protected override void OnMouseUp(MouseButtonEventArgs e);
Parameters
protected override void OnRenderSizeChanged(SizeChangedInfo sizeInfo);
Parameters
sizeInfo
SizeChangedInfo
protected void UpdateAnchor(Point location);
Parameters
location
Point
public void UpdateAnchor();
protected void UpdateAnchorOptimized(Point location);
Parameters
location
Point
public event ConnectorEventHandler Disconnect;
Event Type
public event PendingConnectionEventHandler PendingConnectionCompleted;
Event Type
public event PendingConnectionEventHandler PendingConnectionDrag;
Event Type
public event PendingConnectionEventHandler PendingConnectionStarted;
Event Type
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → EventArgs → RoutedEventArgs → ConnectorEventArgs
References: ConnectorEventHandler, Connector
Provides data for Connector related routed events.
public class ConnectorEventArgs : RoutedEventArgs
Initializes a new instance of the ConnectorEventArgs class using the specified ConnectorEventArgs.Connector.
public ConnectorEventArgs(object connector);
Parameters
connector
Object: The FrameworkElement.DataContext of a related Connector.
Gets or sets the Connector.Anchor of the Connector associated with this event.
public Point Anchor { get; set; }
Property Value
Gets the FrameworkElement.DataContext of the Connector associated with this event.
public object Connector { get; set; }
Property Value
protected override void InvokeEventHandler(Delegate genericHandler, object genericTarget);
Parameters
genericHandler
Delegate
genericTarget
Object
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → Delegate → MulticastDelegate → ConnectorEventHandler
References: ConnectorEventArgs, Connector, Connector
Represents the method that will handle Connector related routed events.
public delegate void ConnectorEventHandler(object sender, ConnectorEventArgs e);
Parameters
sender
Object: The object where the event handler is attached.
e
ConnectorEventArgs: The event data.
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → ContainerState → ContainerDefaultState
References: ItemContainer, ContainerState, ItemContainer
The default state of the ItemContainer.
public class ContainerDefaultState : ContainerState
Creates a new instance of the ContainerDefaultState.
public ContainerDefaultState(ItemContainer container);
Parameters
container
ItemContainer: The owner of the state.
public override void HandleMouseDown(MouseButtonEventArgs e);
Parameters
public override void HandleMouseMove(MouseEventArgs e);
Parameters
public override void HandleMouseUp(MouseButtonEventArgs e);
Parameters
public override void ReEnter(ContainerState from);
Parameters
from
ContainerState
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → ContainerState → ContainerDraggingState
References: ItemContainer, ContainerState
Dragging state of the container.
public class ContainerDraggingState : ContainerState
Constructs an instance of the ContainerDraggingState state.
public ContainerDraggingState(ItemContainer container);
Parameters
container
ItemContainer: The owner of the state.
public bool Canceled { get; set; }
Property Value
public override void Enter(ContainerState from);
Parameters
from
ContainerState
public override void Exit();
public override void HandleKeyUp(KeyEventArgs e);
Parameters
public override void HandleMouseMove(MouseEventArgs e);
Parameters
public override void HandleMouseUp(MouseButtonEventArgs e);
Parameters
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → ContainerState
Derived: ContainerDefaultState, ContainerDraggingState
References: ContainerDefaultState, ContainerDraggingState, ItemContainer, NodifyEditor
The base class for container states.
public abstract class ContainerState
Constructs a new ContainerState.
public ContainerState(ItemContainer container);
Parameters
container
ItemContainer: The owner of the state.
The owner of the state.
protected ItemContainer Container { get; set; }
Property Value
The owner of the state.
protected NodifyEditor Editor { get; set; }
Property Value
Called when Nodify.ItemContainer.PushState(Nodify.ContainerState) or Nodify.ItemContainer.PopState is called.
public virtual void Enter(ContainerState from);
Parameters
from
ContainerState: The state we enter from (is null for root state).
Called when Nodify.ItemContainer.PopState is called.
public virtual void Exit();
public virtual void HandleKeyDown(KeyEventArgs e);
Parameters
public virtual void HandleKeyUp(KeyEventArgs e);
Parameters
public virtual void HandleMouseDown(MouseButtonEventArgs e);
Parameters
public virtual void HandleMouseMove(MouseEventArgs e);
Parameters
public virtual void HandleMouseUp(MouseButtonEventArgs e);
Parameters
public virtual void HandleMouseWheel(MouseWheelEventArgs e);
Parameters
Pops the current state from the stack.
public virtual void PopState();
Pushes a new state into the stack.
public virtual void PushState(ContainerState newState);
Parameters
newState
ContainerState: The new state.
Called when Nodify.ItemContainer.PopState is called.
public virtual void ReEnter(ContainerState from);
Parameters
from
ContainerState: The state we re-enter from.
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → DispatcherObject → DependencyObject → Visual → UIElement → FrameworkElement → Control → ContentControl → DecoratorContainer
Implements: INodifyCanvasItem
References: NodifyEditor
The container for all the items generated from the NodifyEditor.Decorators collection.
public class DecoratorContainer : ContentControl, INodifyCanvasItem
public DecoratorContainer();
public static DependencyProperty ActualSizeProperty;
Field Value
public static RoutedEvent LocationChangedEvent;
Field Value
public static DependencyProperty LocationProperty;
Field Value
Gets the actual size of this DecoratorContainer.
public Size ActualSize { get; set; }
Property Value
Gets or sets the location of this DecoratorContainer inside the NodifyEditor.DecoratorsHost.
public virtual Point Location { get; set; }
Property Value
Raises the DecoratorContainer.LocationChangedEvent.
protected void OnLocationChanged();
protected override void OnRenderSizeChanged(SizeChangedInfo sizeInfo);
Parameters
sizeInfo
SizeChangedInfo
Occurs when the DecoratorContainer.Location of this DecoratorContainer is changed.
public event RoutedEventHandler LocationChanged;
Event Type
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → EditorCommands
References: ItemContainer, NodifyEditor
public static class EditorCommands
Aligns NodifyEditor.SelectedItems using the specified alignment method. Parameter is of type Nodify.EditorCommands.Alignment or a string that can be converted to an alignment.
public static RoutedUICommand Align { get; set; }
Property Value
Moves the NodifyEditor.ViewportLocation to the specified location. Parameter is a Point or a string that can be converted to a point.
public static RoutedUICommand BringIntoView { get; set; }
Property Value
Scales the editor's viewport to fit all the ItemContainers if that's possible.
public static RoutedUICommand FitToScreen { get; set; }
Property Value
Select all ItemContainers in the NodifyEditor.
public static RoutedUICommand SelectAll { get; set; }
Property Value
Zoom in relative to the editor's viewport center.
public static RoutedUICommand ZoomIn { get; set; }
Property Value
Zoom out relative to the editor's viewport center.
public static RoutedUICommand ZoomOut { get; set; }
Property Value
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → EditorState → EditorDefaultState
References: NodifyEditor
The default state of the editor. Default State - mouse left down -> Selecting State - mouse right down -> Panning State Selecting State - mouse left up -> Default State - mouse right down -> Panning State Panning State - mouse right up -> previous state (Selecting State or Default State) - mouse left up -> Panning State
public class EditorDefaultState : EditorState
Constructs an instance of the EditorDefaultState state.
public EditorDefaultState(NodifyEditor editor);
Parameters
editor
NodifyEditor: The owner of the state.
public override void HandleMouseDown(MouseButtonEventArgs e);
Parameters
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → EditorGestures
References: NodifyEditor
Gestures used by the NodifyEditor.
public static class EditorGestures
Gesture used to fit as many containers as possible into the viewport.
public static InputGesture FitToScreen { get; set; }
Property Value
Gesture used to start panning.
public static InputGesture Pan { get; set; }
Property Value
Gesture used to move the editor's viewport location to (0, 0).
public static InputGesture ResetViewportLocation { get; set; }
Property Value
Gesture used to start selecting using a Nodify.EditorGestures.Selection strategy.
public static InputGesture Select { get; set; }
Property Value
The key modifier required to start zooming by mouse wheel.
public static ModifierKeys Zoom { get; set; }
Property Value
Gesture used to zoom in.
public static InputGesture ZoomIn { get; set; }
Property Value
Gesture used to zoom out.
public static InputGesture ZoomOut { get; set; }
Property Value
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → EditorState → EditorPanningState
References: NodifyEditor, EditorState
The panning state of the editor.
public class EditorPanningState : EditorState
Constructs an instance of the EditorPanningState state.
public EditorPanningState(NodifyEditor editor);
Parameters
editor
NodifyEditor: The owner of the state.
public override void Enter(EditorState from);
Parameters
from
EditorState
public override void Exit();
public override void HandleMouseMove(MouseEventArgs e);
Parameters
public override void HandleMouseUp(MouseButtonEventArgs e);
Parameters
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → EditorState → EditorSelectingState
References: NodifyEditor, SelectionType, SelectionHelper, EditorState
The selecting state of the editor.
public class EditorSelectingState : EditorState
Constructs an instance of the EditorSelectingState state.
public EditorSelectingState(NodifyEditor editor, SelectionType type);
Parameters
editor
NodifyEditor: The owner of the state.
type
SelectionType
The selection helper.
protected SelectionHelper Selection { get; set; }
Property Value
public override void Enter(EditorState from);
Parameters
from
EditorState
public override void Exit();
public override void HandleAutoPanning(MouseEventArgs e);
Parameters
public override void HandleMouseDown(MouseButtonEventArgs e);
Parameters
public override void HandleMouseMove(MouseEventArgs e);
Parameters
public override void HandleMouseUp(MouseButtonEventArgs e);
Parameters
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → EditorState
Derived: EditorDefaultState, EditorPanningState, EditorSelectingState
References: EditorPanningState, EditorSelectingState, NodifyEditor
The base class for editor states.
public abstract class EditorState
Constructs a new EditorState.
public EditorState(NodifyEditor editor);
Parameters
editor
NodifyEditor: The owner of the state.
The owner of the state.
protected NodifyEditor Editor { get; set; }
Property Value
Called when Nodify.NodifyEditor.PushState(Nodify.EditorState) is called.
public virtual void Enter(EditorState from);
Parameters
from
EditorState: The state we enter from (is null for root state).
Called when Nodify.NodifyEditor.PopState is called.
public virtual void Exit();
Handles auto panning when mouse is outside the editor.
public virtual void HandleAutoPanning(MouseEventArgs e);
Parameters
e
MouseEventArgs: The MouseEventArgs that contains the event data.
public virtual void HandleKeyDown(KeyEventArgs e);
Parameters
public virtual void HandleKeyUp(KeyEventArgs e);
Parameters
public virtual void HandleMouseDown(MouseButtonEventArgs e);
Parameters
public virtual void HandleMouseMove(MouseEventArgs e);
Parameters
public virtual void HandleMouseUp(MouseButtonEventArgs e);
Parameters
public virtual void HandleMouseWheel(MouseWheelEventArgs e);
Parameters
Pops the current state from the stack.
public virtual void PopState();
Pushes a new state into the stack.
public virtual void PushState(EditorState newState);
Parameters
newState
EditorState: The new state.
Called when Nodify.NodifyEditor.PopState is called.
public virtual void ReEnter(EditorState from);
Parameters
from
EditorState: The state we re-enter from.
Namespace: XamlGeneratedNamespace
Assembly: Nodify
Inheritance: Object → InternalTypeHelper → GeneratedInternalTypeHelper
GeneratedInternalTypeHelper
public sealed class GeneratedInternalTypeHelper : InternalTypeHelper
public GeneratedInternalTypeHelper();
AddEventHandler
protected override void AddEventHandler(EventInfo eventInfo, object target, Delegate handler);
Parameters
eventInfo
EventInfo
target
Object
handler
Delegate
CreateDelegate
protected override Delegate CreateDelegate(Type delegateType, object target, string handler);
Parameters
delegateType
Type
target
Object
handler
String
Returns
CreateInstance
protected override object CreateInstance(Type type, CultureInfo culture);
Parameters
type
Type
culture
CultureInfo
Returns
GetPropertyValue
protected override object GetPropertyValue(PropertyInfo propertyInfo, object target, CultureInfo culture);
Parameters
propertyInfo
PropertyInfo
target
Object
culture
CultureInfo
Returns
SetPropertyValue
protected override void SetPropertyValue(PropertyInfo propertyInfo, object target, object value, CultureInfo culture);
Parameters
propertyInfo
PropertyInfo
target
Object
value
Object
culture
CultureInfo
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → ValueType → Enum → GroupingMovementMode
References: GroupingNode, GroupingNode
Specifies the possible movement modes of a GroupingNode.
public enum GroupingMovementMode
The GroupingNode will move its content when moved.
public const GroupingMovementMode Group = 0;
Field Value
The GroupingNode will not move its content when moved.
public const GroupingMovementMode Self = 1;
Field Value
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → GroupingNode
References: GroupingMovementMode, ItemContainer, NodifyEditor
Defines a panel with a header that groups ItemContainers inside it and can be resized.
public static class GroupingNode
public static ModifierKeys SwitchMovementMode { get; set; }
Property Value
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → DispatcherObject → DependencyObject → Visual → UIElement → FrameworkElement → Control → ContentControl → HeaderedContentControl → GroupingNode
References: ResizeEventHandler, GroupingMovementMode, NodifyEditor, ItemContainer
public class GroupingNode : HeaderedContentControl
public GroupingNode();
public static DependencyProperty ActualSizeProperty;
Field Value
public static DependencyProperty CanResizeProperty;
Field Value
protected FrameworkElement ContentControl;
Field Value
protected const string ElementContent = "PART_Content";
Field Value
protected const string ElementHeader = "PART_Header";
Field Value
protected const string ElementResizeThumb = "PART_ResizeThumb";
Field Value
protected static object GroupMovementBoxed;
Field Value
public static DependencyProperty HeaderBrushProperty;
Field Value
protected FrameworkElement HeaderControl;
Field Value
public static DependencyProperty MovementModeProperty;
Field Value
public static DependencyProperty ResizeCompletedCommandProperty;
Field Value
public static RoutedEvent ResizeCompletedEvent;
Field Value
public static DependencyProperty ResizeStartedCommandProperty;
Field Value
public static RoutedEvent ResizeStartedEvent;
Field Value
protected FrameworkElement ResizeThumb;
Field Value
public Size ActualSize { get; set; }
Property Value
public bool CanResize { get; set; }
Property Value
protected ItemContainer Container { get; set; }
Property Value
protected NodifyEditor Editor { get; set; }
Property Value
public Brush HeaderBrush { get; set; }
Property Value
public GroupingMovementMode MovementMode { get; set; }
Property Value
public ICommand ResizeCompletedCommand { get; set; }
Property Value
public ICommand ResizeStartedCommand { get; set; }
Property Value
public override void OnApplyTemplate();
public event ResizeEventHandler ResizeCompleted;
Event Type
public event ResizeEventHandler ResizeStarted;
Event Type
Namespace: Nodify
Assembly: Nodify
Inheritance: INodifyCanvasItem
Derived: DecoratorContainer, ItemContainer
References: NodifyCanvas
Interface for items inside a NodifyCanvas.
public abstract interface INodifyCanvasItem
The desired size of the item.
public virtual Size DesiredSize { get; set; }
Property Value
The location of the item.
public virtual Point Location { get; set; }
Property Value
public virtual void Arrange(Rect rect);
Parameters
rect
Rect
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → ItemContainer
References: Connector, PendingConnection, EditorCommands, ContainerDefaultState, SelectionHelper, PreviewLocationChanged, NodifyEditor, GroupingNode
The container for all the items generated by the ItemsControl.ItemsSource of the NodifyEditor.
public static class ItemContainer
public static InputGesture CancelAction { get; set; }
Property Value
public static InputGesture Drag { get; set; }
Property Value
public static InputGesture Select { get; set; }
Property Value
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → DispatcherObject → DependencyObject → Visual → UIElement → FrameworkElement → Control → ContentControl → ItemContainer
Implements: INodifyCanvasItem
References: ContainerDefaultState, ContainerDraggingState, ContainerState, Connector, NodifyEditor, GroupingNode, PreviewLocationChanged
public class ItemContainer : ContentControl, INodifyCanvasItem
public ItemContainer(NodifyEditor editor);
Parameters
editor
NodifyEditor
public static DependencyProperty ActualSizeProperty;
Field Value
public static DependencyProperty DesiredSizeForSelectionProperty;
Field Value
public static RoutedEvent DragCompletedEvent;
Field Value
public static RoutedEvent DragDeltaEvent;
Field Value
public static RoutedEvent DragStartedEvent;
Field Value
public static DependencyProperty HighlightBrushProperty;
Field Value
public static DependencyProperty IsDraggableProperty;
Field Value
public static DependencyProperty IsPreviewingLocationProperty;
Field Value
public static DependencyPropertyKey IsPreviewingLocationPropertyKey;
Field Value
public static DependencyProperty IsPreviewingSelectionProperty;
Field Value
public static DependencyPropertyKey IsPreviewingSelectionPropertyKey;
Field Value
public static DependencyProperty IsSelectableProperty;
Field Value
public static DependencyProperty IsSelectedProperty;
Field Value
public static RoutedEvent LocationChangedEvent;
Field Value
public static DependencyProperty LocationProperty;
Field Value
public static DependencyProperty SelectedBrushProperty;
Field Value
public static RoutedEvent SelectedEvent;
Field Value
public static RoutedEvent UnselectedEvent;
Field Value
public Size ActualSize { get; set; }
Property Value
public static bool AllowDraggingCancellation { get; set; }
Property Value
public Size? DesiredSizeForSelection { get; set; }
Property Value
public NodifyEditor Editor { get; set; }
Property Value
public Brush HighlightBrush { get; set; }
Property Value
public bool IsDraggable { get; set; }
Property Value
public bool IsPreviewingLocation { get; set; }
Property Value
public Boolean? IsPreviewingSelection { get; set; }
Property Value
public bool IsSelectable { get; set; }
Property Value
public bool IsSelected { get; set; }
Property Value
public virtual Point Location { get; set; }
Property Value
public Brush SelectedBrush { get; set; }
Property Value
public ContainerState State { get; set; }
Property Value
protected virtual ContainerState GetInitialState();
Returns
public virtual bool IsSelectableInArea(Rect area, bool isContained);
Parameters
area
Rect
isContained
Boolean
Returns
protected virtual bool IsSelectableLocation(Point position);
Parameters
position
Point
Returns
public override void OnApplyTemplate();
protected override void OnKeyDown(KeyEventArgs e);
Parameters
protected override void OnKeyUp(KeyEventArgs e);
Parameters
protected void OnLocationChanged();
protected override void OnLostMouseCapture(MouseEventArgs e);
Parameters
protected override void OnMouseDown(MouseButtonEventArgs e);
Parameters
protected override void OnMouseMove(MouseEventArgs e);
Parameters
protected override void OnMouseUp(MouseButtonEventArgs e);
Parameters
protected override void OnMouseWheel(MouseWheelEventArgs e);
Parameters
protected override void OnRenderSizeChanged(SizeChangedInfo sizeInfo);
Parameters
sizeInfo
SizeChangedInfo
protected void OnSelectedChanged(bool newValue);
Parameters
newValue
Boolean
public void PopAllStates();
public void PopState();
public void PushState(ContainerState state);
Parameters
state
ContainerState
public event DragCompletedEventHandler DragCompleted;
Event Type
public event DragDeltaEventHandler DragDelta;
Event Type
public event DragStartedEventHandler DragStarted;
Event Type
public event RoutedEventHandler LocationChanged;
Event Type
public event PreviewLocationChanged PreviewLocationChanged;
Event Type
public event RoutedEventHandler Selected;
Event Type
public event RoutedEventHandler Unselected;
Event Type
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → DispatcherObject → DependencyObject → Visual → UIElement → FrameworkElement → Control → ContentControl → KnotNode
References: Connector
Represents a control that owns a Connector.
public class KnotNode : ContentControl
public KnotNode();
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → DispatcherObject → DependencyObject → Visual → UIElement → FrameworkElement → Shape → BaseConnection → LineConnection
Derived: CircuitConnection
References: BaseConnection
Represents a line that has an arrow indicating its BaseConnection.Direction.
public class LineConnection : BaseConnection
public LineConnection();
protected override ValueTuple<Point, Point> DrawLineGeometry(StreamGeometryContext context, Point source, Point target);
Parameters
context
StreamGeometryContext
source
Point
target
Point
Returns
protected override ValueTuple<Point, Point> GetArrowHeadPoints(Point source, Point target);
Parameters
source
Point
target
Point
Returns
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → ValueType → Enum → Match
References: MultiGesture
public enum Match
public const Match All = 1;
Field Value
public const Match Any = 0;
Field Value
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → InputGesture → MultiGesture
References: Match
Combines multiple input gestures.
public class MultiGesture : InputGesture
Constructs an instance of a MultiGesture.
public MultiGesture(Match match, InputGesture[] gestures);
Parameters
match
Match: The matching strategy.
gestures
InputGesture[]: The input gestures.
public override bool Matches(object targetElement, InputEventArgs inputEventArgs);
Parameters
targetElement
Object
inputEventArgs
InputEventArgs
Returns
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → DispatcherObject → DependencyObject → Visual → UIElement → FrameworkElement → Control → ContentControl → HeaderedContentControl → Node
References: Connector, NodeInput, NodeOutput
Represents a control that has a list of Node.InputConnectors and a list of Node.OutputConnectors.
public class Node : HeaderedContentControl
public Node();
public static DependencyProperty ContentBrushProperty;
Field Value
public static DependencyProperty FooterBrushProperty;
Field Value
public static DependencyProperty FooterProperty;
Field Value
public static DependencyProperty FooterTemplateProperty;
Field Value
public static DependencyProperty HasFooterProperty;
Field Value
public static DependencyProperty HeaderBrushProperty;
Field Value
public static DependencyProperty InputConnectorTemplateProperty;
Field Value
public static DependencyProperty InputProperty;
Field Value
public static DependencyProperty OutputConnectorTemplateProperty;
Field Value
public static DependencyProperty OutputProperty;
Field Value
Gets or sets the brush used for the background of the ContentControl.Content of this Node.
public Brush ContentBrush { get; set; }
Property Value
Gets or sets the data for the footer of this control.
public object Footer { get; set; }
Property Value
Gets or sets the brush used for the background of the Node.Footer of this Node.
public Brush FooterBrush { get; set; }
Property Value
Gets or sets the template used to display the content of the control's footer.
public DataTemplate FooterTemplate { get; set; }
Property Value
Gets a value that indicates whether the Node.Footer is .
public bool HasFooter { get; set; }
Property Value
Gets or sets the brush used for the background of the HeaderedContentControl.Header of this Node.
public Brush HeaderBrush { get; set; }
Property Value
Gets or sets the data for the input Connectors of this control.
public IEnumerable Input { get; set; }
Property Value
Gets or sets the template used to display the content of the control's Node.Input connectors.
public DataTemplate InputConnectorTemplate { get; set; }
Property Value
Gets or sets the data for the output Connectors of this control.
public IEnumerable Output { get; set; }
Property Value
Gets or sets the template used to display the content of the control's Node.Output connectors.
public DataTemplate OutputConnectorTemplate { get; set; }
Property Value
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → DispatcherObject → DependencyObject → Visual → UIElement → FrameworkElement → Control → Connector → NodeInput
Represents the default control for the Node.InputConnectorTemplate.
public class NodeInput : Connector
public NodeInput();
public static DependencyProperty ConnectorTemplateProperty;
Field Value
public static DependencyProperty HeaderProperty;
Field Value
public static DependencyProperty HeaderTemplateProperty;
Field Value
Gets or sets the template used to display the connecting point of this Connector.
public ControlTemplate ConnectorTemplate { get; set; }
Property Value
Gets of sets the data used for the control's header.
public object Header { get; set; }
Property Value
Gets or sets the template used to display the content of the control's header.
public DataTemplate HeaderTemplate { get; set; }
Property Value
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → DispatcherObject → DependencyObject → Visual → UIElement → FrameworkElement → Control → Connector → NodeOutput
Represents the default control for the Node.OutputConnectorTemplate.
public class NodeOutput : Connector
public NodeOutput();
public static DependencyProperty ConnectorTemplateProperty;
Field Value
public static DependencyProperty HeaderProperty;
Field Value
public static DependencyProperty HeaderTemplateProperty;
Field Value
Gets or sets the template used to display the connecting point of this Connector.
public ControlTemplate ConnectorTemplate { get; set; }
Property Value
Gets of sets the data used for the control's header.
public object Header { get; set; }
Property Value
Gets or sets the template used to display the content of the control's header.
public DataTemplate HeaderTemplate { get; set; }
Property Value
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → DispatcherObject → DependencyObject → Visual → UIElement → FrameworkElement → Panel → NodifyCanvas
References: INodifyCanvasItem
A canvas like panel that works with INodifyCanvasItems.
public class NodifyCanvas : Panel
public NodifyCanvas();
public static DependencyProperty ExtentProperty;
Field Value
The area covered by the children of this panel.
public Rect Extent { get; set; }
Property Value
protected override Size ArrangeOverride(Size arrangeSize);
Parameters
arrangeSize
Size
Returns
protected override Size MeasureOverride(Size constraint);
Parameters
constraint
Size
Returns
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → DispatcherObject → DependencyObject → Visual → UIElement → FrameworkElement → Control → ItemsControl → Selector → MultiSelector → NodifyEditor
References: ContainerState, EditorDefaultState, EditorPanningState, EditorSelectingState, EditorState, SelectionHelper, ItemContainer, PendingConnection, GroupingNode, Connector, DecoratorContainer, EditorCommands, EditorGestures, ItemContainer, GroupingNode, Connection, BaseConnection
Groups ItemContainers and Connections in an area that you can drag, zoom and select.
public class NodifyEditor : MultiSelector
Initializes a new instance of the NodifyEditor class.
public NodifyEditor();
public static DependencyProperty AutoPanEdgeDistanceProperty;
Field Value
public static DependencyProperty AutoPanSpeedProperty;
Field Value
public static DependencyProperty BringIntoViewMaxDurationProperty;
Field Value
public static DependencyProperty BringIntoViewSpeedProperty;
Field Value
public static DependencyProperty ConnectionCompletedCommandProperty;
Field Value
public static DependencyProperty ConnectionsProperty;
Field Value
public static DependencyProperty ConnectionStartedCommandProperty;
Field Value
public static DependencyProperty ConnectionTemplateProperty;
Field Value
public static DependencyProperty DecoratorContainerStyleProperty;
Field Value
public static DependencyProperty DecoratorsExtentProperty;
Field Value
public static DependencyProperty DecoratorsProperty;
Field Value
public static DependencyProperty DecoratorTemplateProperty;
Field Value
public static DependencyProperty DisableAutoPanningProperty;
Field Value
public static DependencyProperty DisablePanningProperty;
Field Value
public static DependencyProperty DisableZoomingProperty;
Field Value
public static DependencyProperty DisconnectConnectorCommandProperty;
Field Value
public static DependencyProperty DisplayConnectionsOnTopProperty;
Field Value
protected const string ElementItemsHost = "PART_ItemsHost";
Field Value
public static DependencyProperty EnableRealtimeSelectionProperty;
Field Value
public static DependencyProperty GridCellSizeProperty;
Field Value
public static DependencyProperty IsPanningProperty;
Field Value
public static DependencyPropertyKey IsPanningPropertyKey;
Field Value
public static DependencyProperty IsSelectingProperty;
Field Value
protected static DependencyPropertyKey IsSelectingPropertyKey;
Field Value
public static DependencyProperty ItemsDragCompletedCommandProperty;
Field Value
public static DependencyProperty ItemsDragStartedCommandProperty;
Field Value
public static DependencyProperty ItemsExtentProperty;
Field Value
public static DependencyProperty MaxViewportZoomProperty;
Field Value
public static DependencyProperty MinViewportZoomProperty;
Field Value
public static DependencyProperty MouseLocationProperty;
Field Value
protected static DependencyPropertyKey MouseLocationPropertyKey;
Field Value
public static DependencyProperty PendingConnectionProperty;
Field Value
public static DependencyProperty PendingConnectionTemplateProperty;
Field Value
public static DependencyProperty RemoveConnectionCommandProperty;
Field Value
Gets the transform used to zoom on the viewport.
protected readonly ScaleTransform ScaleTransform;
Field Value
public static DependencyProperty SelectedAreaProperty;
Field Value
protected static DependencyPropertyKey SelectedAreaPropertyKey;
Field Value
public static DependencyProperty SelectedItemsProperty;
Field Value
public static DependencyProperty SelectionRectangleStyleProperty;
Field Value
Gets the transform used to offset the viewport.
protected readonly TranslateTransform TranslateTransform;
Field Value
public static DependencyProperty ViewportLocationProperty;
Field Value
public static DependencyProperty ViewportSizeProperty;
Field Value
public static DependencyProperty ViewportTransformProperty;
Field Value
public static RoutedEvent ViewportUpdatedEvent;
Field Value
public static DependencyProperty ViewportZoomProperty;
Field Value
Gets or sets the maximum distance in pixels from the edge of the editor that will trigger auto-panning.
public double AutoPanEdgeDistance { get; set; }
Property Value
Gets or sets how often the new NodifyEditor.ViewportLocation is calculated in milliseconds when NodifyEditor.DisableAutoPanning is false.
public static double AutoPanningTickRate { get; set; }
Property Value
Gets or sets the speed used when auto-panning scaled by NodifyEditor.AutoPanningTickRate
public double AutoPanSpeed { get; set; }
Property Value
Gets or sets the maximum animation duration in seconds for bringing a location into view.
public double BringIntoViewMaxDuration { get; set; }
Property Value
Gets or sets the animation speed in pixels per second for bringing a location into view.
public double BringIntoViewSpeed { get; set; }
Property Value
Invoked when the PendingConnection is completed.
Use PendingConnection.CompletedCommand if you want to control the visibility of the connection from the viewmodel.
Parameter is System.Tuple2 where System.Tuple
2.Item1 is the PendingConnection.Source and System.Tuple`2.Item2 is PendingConnection.Target.
public ICommand ConnectionCompletedCommand { get; set; }
Property Value
Gets or sets the data source that BaseConnections will be generated for.
public IEnumerable Connections { get; set; }
Property Value
Invoked when the PendingConnection is completed. Use PendingConnection.StartedCommand if you want to control the visibility of the connection from the viewmodel. Parameter is PendingConnection.Source.
public ICommand ConnectionStartedCommand { get; set; }
Property Value
Gets or sets the DataTemplate to use when generating a new BaseConnection.
public DataTemplate ConnectionTemplate { get; set; }
Property Value
Gets or sets the style to use for the DecoratorContainer.
public Style DecoratorContainerStyle { get; set; }
Property Value
Gets or sets the items that will be rendered in the decorators layer via DecoratorContainers.
public IEnumerable Decorators { get; set; }
Property Value
The area covered by the DecoratorContainers.
public Rect DecoratorsExtent { get; set; }
Property Value
Gets or sets the DataTemplate to use when generating a new DecoratorContainer.
public DataTemplate DecoratorTemplate { get; set; }
Property Value
Gets or sets whether to disable the auto panning when selecting or dragging near the edge of the editor configured by NodifyEditor.AutoPanEdgeDistance.
public bool DisableAutoPanning { get; set; }
Property Value
Gets or sets whether panning should be disabled.
public bool DisablePanning { get; set; }
Property Value
Gets or sets whether zooming should be disabled.
public bool DisableZooming { get; set; }
Property Value
Invoked when the Connector.Disconnect event is raised. Can also be handled at the Connector level using the Connector.DisconnectCommand command. Parameter is the Connector's FrameworkElement.DataContext.
public ICommand DisconnectConnectorCommand { get; set; }
Property Value
Gets or sets whether to display connections on top of ItemContainers or not.
public bool DisplayConnectionsOnTop { get; set; }
Property Value
Enables selecting and deselecting items while the NodifyEditor.SelectedArea changes. Disable for maximum performance when hundreds of items are generated.
public bool EnableRealtimeSelection { get; set; }
Property Value
Gets or sets if NodifyEditors should enable optimizations based on NodifyEditor.OptimizeRenderingMinimumContainers and NodifyEditor.OptimizeRenderingZoomOutPercent.
public static bool EnableRenderingContainersOptimizations { get; set; }
Property Value
Correct ItemContainer's position after moving if starting position is not snapped to grid.
public static bool EnableSnappingCorrection { get; set; }
Property Value
Gets or sets the margin to add in all directions to the NodifyEditor.ItemsExtent or area parameter when using Nodify.NodifyEditor.FitToScreen(System.Nullable{System.Windows.Rect}).
public static double FitToScreenExtentMargin { get; set; }
Property Value
Gets or sets the value of an invisible grid used to adjust locations (snapping) of ItemContainers.
public uint GridCellSize { get; set; }
Property Value
Gets or sets the maximum number of pixels allowed to move the mouse before cancelling the mouse event. Useful for System.Windows.Controls.ContextMenus to appear if mouse only moved a bit or not at all.
public static double HandleRightClickAfterPanningThreshold { get; set; }
Property Value
Tells if the NodifyEditor is doing operations on multiple items at once.
public bool IsBulkUpdatingItems { get; protected set; }
Property Value
Gets a value that indicates whether a panning operation is in progress.
public bool IsPanning { get; set; }
Property Value
Gets a value that indicates whether a selection operation is in progress.
public bool IsSelecting { get; set; }
Property Value
Invoked when a drag operation is completed for the NodifyEditor.SelectedItems.
public ICommand ItemsDragCompletedCommand { get; set; }
Property Value
Invoked when a drag operation starts for the NodifyEditor.SelectedItems.
public ICommand ItemsDragStartedCommand { get; set; }
Property Value
The area covered by the ItemContainers.
public Rect ItemsExtent { get; set; }
Property Value
Gets or sets the maximum zoom factor of the viewport
public double MaxViewportZoom { get; set; }
Property Value
Gets or sets the minimum zoom factor of the viewport
public double MinViewportZoom { get; set; }
Property Value
Gets the current mouse location in graph space coordinates (relative to the NodifyEditor.ItemsHost).
public Point MouseLocation { get; protected set; }
Property Value
Gets or sets the minimum selected ItemContainers needed to trigger optimizations when reaching the NodifyEditor.OptimizeRenderingZoomOutPercent.
public static uint OptimizeRenderingMinimumContainers { get; set; }
Property Value
Gets or sets the minimum zoom out percent needed to start optimizing the rendering for ItemContainers. Value is between 0 and 1.
public static double OptimizeRenderingZoomOutPercent { get; set; }
Property Value
Gets of sets the FrameworkElement.DataContext of the PendingConnection.
public object PendingConnection { get; set; }
Property Value
Gets or sets the DataTemplate to use for the NodifyEditor.PendingConnection.
public DataTemplate PendingConnectionTemplate { get; set; }
Property Value
Invoked when the BaseConnection.Disconnect event is raised. Can also be handled at the BaseConnection level using the BaseConnection.DisconnectCommand command. Parameter is the BaseConnection's FrameworkElement.DataContext.
public ICommand RemoveConnectionCommand { get; set; }
Property Value
Gets the currently selected area while NodifyEditor.IsSelecting is true.
public Rect SelectedArea { get; set; }
Property Value
Gets or sets the items in the NodifyEditor that are selected.
public IList SelectedItems { get; set; }
Property Value
Gets or sets the style to use for the selection rectangle.
public Style SelectionRectangleStyle { get; set; }
Property Value
The current state of the editor.
public EditorState State { get; set; }
Property Value
Gets or sets the viewport's top-left coordinates in graph space coordinates.
public Point ViewportLocation { get; set; }
Property Value
Gets the size of the viewport.
public Size ViewportSize { get; set; }
Property Value
Gets the transform that is applied to all child controls.
public Transform ViewportTransform { get; set; }
Property Value
Gets or sets the zoom factor of the viewport.
public double ViewportZoom { get; set; }
Property Value
Moves the viewport center at the specified location.
public void BringIntoView(Point point, bool animated = true, Action onFinish = null);
Parameters
point
Point: The location in graph space coordinates.
animated
Boolean: True to animate the movement.
onFinish
Action: The callback invoked when movement is finished.
Scales the viewport to fit the specified area or all the ItemContainers if that's possible.
public void FitToScreen(Rect? area = null);
Parameters
area
Rect?
protected override DependencyObject GetContainerForItemOverride();
Returns
Creates the initial state of the editor.
protected virtual EditorState GetInitialState();
Returns
EditorState: The initial state.
Inverts the ItemContainers selection in the specified area.
public void InvertSelection(Rect area, bool fit = false);
Parameters
area
Rect: The area to look for ItemContainers.
fit
Boolean: True to check if the area contains the ItemContainer. False to check if area intersects the ItemContainer.
protected override bool IsItemItsOwnContainerOverride(object item);
Parameters
item
Object
Returns
public override void OnApplyTemplate();
Called when the NodifyEditor.DisableAutoPanning changes.
protected virtual void OnDisableAutoPanningChanged(bool shouldDisable);
Parameters
shouldDisable
Boolean: Whether to enable or disable auto panning.
protected override void OnKeyDown(KeyEventArgs e);
Parameters
protected override void OnKeyUp(KeyEventArgs e);
Parameters
protected override void OnLostMouseCapture(MouseEventArgs e);
Parameters
protected override void OnMouseDown(MouseButtonEventArgs e);
Parameters
protected override void OnMouseMove(MouseEventArgs e);
Parameters
protected override void OnMouseUp(MouseButtonEventArgs e);
Parameters
protected override void OnMouseWheel(MouseWheelEventArgs e);
Parameters
protected override void OnRenderSizeChanged(SizeChangedInfo sizeInfo);
Parameters
sizeInfo
SizeChangedInfo
protected override void OnSelectionChanged(SelectionChangedEventArgs e);
Parameters
Updates the NodifyEditor.ViewportSize and raises the NodifyEditor.ViewportUpdatedEvent. Called when the UIElement.RenderSize or NodifyEditor.ViewportZoom is changed.
protected void OnViewportUpdated();
Pops all states from the editor.
public void PopAllStates();
Pops the current NodifyEditor.State from the stack.
public void PopState();
Pushes the given state to the stack.
public void PushState(EditorState state);
Parameters
state
EditorState: The new state of the editor.
Selects the ItemContainers in the specified area.
public void SelectArea(Rect area, bool append = false, bool fit = false);
Parameters
area
Rect: The area to look for ItemContainers.
append
Boolean: If true, it will add to the existing selection.
fit
Boolean: True to check if the area contains the ItemContainer. False to check if area intersects the ItemContainer.
Unselect the ItemContainers in the specified area.
public void UnselectArea(Rect area, bool fit = false);
Parameters
area
Rect: The area to look for ItemContainers.
fit
Boolean: True to check if the area contains the ItemContainer. False to check if area intersects the ItemContainer.
Zoom at the specified location in graph space coordinates.
public void ZoomAtPosition(double zoom, Point location);
Parameters
zoom
Double: The zoom factor.
location
Point: The location to focus when zooming.
Zoom in at the viewports center
public void ZoomIn();
Zoom out at the viewports center
public void ZoomOut();
Occurs whenever the viewport updates.
public event RoutedEventHandler ViewportUpdated;
Event Type
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → DispatcherObject → DependencyObject → Visual → UIElement → FrameworkElement → Control → ContentControl → PendingConnection
References: PendingConnectionEventArgs, ConnectionDirection, NodifyEditor, Connector, ItemContainer, PendingConnectionEventHandler, StateNode
Represents a pending connection usually started by a Connector which invokes the PendingConnection.CompletedCommand when completed.
public class PendingConnection : ContentControl
public PendingConnection();
public static DependencyProperty AllowOnlyConnectorsProperty;
Field Value
public static DependencyProperty CompletedCommandProperty;
Field Value
public static DependencyProperty DirectionProperty;
Field Value
public static DependencyProperty EnablePreviewProperty;
Field Value
public static DependencyProperty EnableSnappingProperty;
Field Value
Will be set for Connectors and ItemContainers when the pending connection is over the element if PendingConnection.EnablePreview or PendingConnection.EnableSnapping is true.
public static DependencyProperty IsOverElementProperty;
Field Value
public static DependencyProperty IsVisibleProperty;
Field Value
public static DependencyProperty PreviewTargetProperty;
Field Value
public static DependencyProperty SourceAnchorProperty;
Field Value
public static DependencyProperty SourceProperty;
Field Value
public static DependencyProperty StartedCommandProperty;
Field Value
public static DependencyProperty StrokeDashArrayProperty;
Field Value
public static DependencyProperty StrokeProperty;
Field Value
public static DependencyProperty StrokeThicknessProperty;
Field Value
public static DependencyProperty TargetAnchorProperty;
Field Value
public static DependencyProperty TargetProperty;
Field Value
If true will preview and connect only to Connectors, otherwise will also enable ItemContainers.
public bool AllowOnlyConnectors { get; set; }
Property Value
Gets or sets the command to invoke when the pending connection is completed. Will not be invoked if NodifyEditor.ConnectionCompletedCommand is used. PendingConnection.Target will be set to the desired Connector's FrameworkElement.DataContext and will also be the command's parameter.
public ICommand CompletedCommand { get; set; }
Property Value
Gets or sets the direction of this connection.
public ConnectionDirection Direction { get; set; }
Property Value
Gets the NodifyEditor that owns this PendingConnection.
protected NodifyEditor Editor { get; set; }
Property Value
PendingConnection.PreviewTarget will be updated with a potential Connector's FrameworkElement.DataContext if this is true.
public bool EnablePreview { get; set; }
Property Value
Enables snapping the PendingConnection.TargetAnchor to a possible PendingConnection.Target connector.
public bool EnableSnapping { get; set; }
Property Value
Gets or sets the visibility of the connection.
public bool IsVisible { get; set; }
Property Value
Gets or sets the Connector or the ItemContainer (if PendingConnection.AllowOnlyConnectors is false) that we're previewing.
public object PreviewTarget { get; set; }
Property Value
Gets or sets the Connector's FrameworkElement.DataContext that started this pending connection.
public object Source { get; set; }
Property Value
Gets or sets the starting point for the connection.
public Point SourceAnchor { get; set; }
Property Value
Gets or sets the command to invoke when the pending connection is started. Will not be invoked if NodifyEditor.ConnectionStartedCommand is used. PendingConnection.Source will be set to the Connector's FrameworkElement.DataContext that started this connection and will also be the command's parameter.
public ICommand StartedCommand { get; set; }
Property Value
Gets or sets the stroke color of the connection.
public Brush Stroke { get; set; }
Property Value
Gets or sets the pattern of dashes and gaps that is used to outline the connection.
public DoubleCollection StrokeDashArray { get; set; }
Property Value
Gets or set the connection thickness.
public double StrokeThickness { get; set; }
Property Value
Gets or sets the Connector's FrameworkElement.DataContext (or potentially an ItemContainer's FrameworkElement.DataContext if PendingConnection.AllowOnlyConnectors is false) that the PendingConnection.Source can connect to. Only set when the connection is completed (see PendingConnection.CompletedCommand).
public object Target { get; set; }
Property Value
Gets or sets the end point for the connection.
public Point TargetAnchor { get; set; }
Property Value
public static bool GetIsOverElement(UIElement elem);
Parameters
elem
UIElement
Returns
public override void OnApplyTemplate();
protected virtual void OnPendingConnectionCompleted(object sender, PendingConnectionEventArgs e);
Parameters
sender
Object
protected virtual void OnPendingConnectionDrag(object sender, PendingConnectionEventArgs e);
Parameters
sender
Object
protected virtual void OnPendingConnectionStarted(object sender, PendingConnectionEventArgs e);
Parameters
sender
Object
public static void SetIsOverElement(UIElement elem, bool value);
Parameters
elem
UIElement
value
Boolean
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → EventArgs → RoutedEventArgs → PendingConnectionEventArgs
References: PendingConnectionEventHandler, PendingConnection, Connector
Provides data for PendingConnection related routed events.
public class PendingConnectionEventArgs : RoutedEventArgs
Initializes a new instance of the PendingConnectionEventArgs class using the specified PendingConnectionEventArgs.SourceConnector.
public PendingConnectionEventArgs(object sourceConnector);
Parameters
sourceConnector
Object: The FrameworkElement.DataContext of a related Connector.
Gets or sets the Connector.Anchor of the Connector that raised this event.
public Point Anchor { get; set; }
Property Value
Gets or sets a value that indicates whether this PendingConnection was cancelled.
public bool Canceled { get; set; }
Property Value
Gets or sets the distance from the PendingConnectionEventArgs.SourceConnector in the X axis.
public double OffsetX { get; set; }
Property Value
Gets or sets the distance from the PendingConnectionEventArgs.SourceConnector in the Y axis.
public double OffsetY { get; set; }
Property Value
Gets the FrameworkElement.DataContext of the Connector that started this PendingConnection.
public object SourceConnector { get; set; }
Property Value
Gets or sets the FrameworkElement.DataContext of the target Connector when the PendingConnection is completed.
public object TargetConnector { get; set; }
Property Value
protected override void InvokeEventHandler(Delegate genericHandler, object genericTarget);
Parameters
genericHandler
Delegate
genericTarget
Object
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → Delegate → MulticastDelegate → PendingConnectionEventHandler
References: PendingConnectionEventArgs, Connector, PendingConnection
Represents the method that will handle PendingConnection related routed events.
public delegate void PendingConnectionEventHandler(object sender, PendingConnectionEventArgs e);
Parameters
sender
Object: The object where the event handler is attached.
e
PendingConnectionEventArgs: The event data.
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → Delegate → MulticastDelegate → PreviewLocationChanged
References: ItemContainer, ItemContainer
Delegate used to notify when an ItemContainer is previewing a new location.
public delegate void PreviewLocationChanged(Point newLocation);
Parameters
newLocation
Point: The new location.
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → EventArgs → RoutedEventArgs → ResizeEventArgs
References: ResizeEventHandler
Provides data for resize related routed events.
public class ResizeEventArgs : RoutedEventArgs
Initializes a new instance of the ResizeEventArgs class with the previous and the new Size.
public ResizeEventArgs(Size previousSize, Size newSize);
Parameters
previousSize
Size: The previous size associated with this event.
newSize
Size: The new size associated with this event.
Gets the new size of the object.
public Size NewSize { get; set; }
Property Value
Gets the previous size of the object.
public Size PreviousSize { get; set; }
Property Value
protected override void InvokeEventHandler(Delegate genericHandler, object genericTarget);
Parameters
genericHandler
Delegate
genericTarget
Object
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → Delegate → MulticastDelegate → ResizeEventHandler
References: ResizeEventArgs, GroupingNode
Represents the method that will handle resize related routed events.
public delegate void ResizeEventHandler(object sender, ResizeEventArgs e);
Parameters
sender
Object: The sender of this event.
e
ResizeEventArgs: The event data.
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → Selection
public static class Selection
public static InputGesture Append { get; set; }
Property Value
public static InputGesture Invert { get; set; }
Property Value
public static InputGesture Remove { get; set; }
Property Value
public static InputGesture Replace { get; set; }
Property Value
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → SelectionHelper
References: EditorSelectingState, NodifyEditor, SelectionType, ItemContainer
Helps with selecting ItemContainers and updating the NodifyEditor.SelectedArea and NodifyEditor.IsSelecting properties.
public sealed class SelectionHelper
Constructs a new instance of a SelectionHelper.
public SelectionHelper(NodifyEditor host);
Parameters
host
NodifyEditor: The editor to select items from.
Commits the current selection to the editor.
public void End();
Attempts to start a new selection.
public void Start(Point location, SelectionType selectionType);
Parameters
location
Point: The location inside the graph.
selectionType
SelectionType: The type of selection.
Update the end location for the selection.
public void Update(Point endLocation);
Parameters
endLocation
Point: An absolute location.
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → ValueType → Enum → SelectionType
References: EditorSelectingState, SelectionHelper
public enum SelectionType
public const SelectionType Append = 2;
Field Value
public const SelectionType Invert = 3;
Field Value
public const SelectionType Remove = 1;
Field Value
public const SelectionType Replace = 0;
Field Value
Namespace: Nodify
Assembly: Nodify
Inheritance: Object → DispatcherObject → DependencyObject → Visual → UIElement → FrameworkElement → Control → Connector → StateNode
References: Connector, PendingConnection
Represents a control that acts as a Connector.
public class StateNode : Connector
public StateNode();
public static DependencyProperty ContentProperty;
Field Value
public static DependencyProperty ContentTemplateProperty;
Field Value
public static DependencyProperty CornerRadiusProperty;
Field Value
protected const string ElementContent = "PART_Content";
Field Value
public static DependencyProperty HighlightBrushProperty;
Field Value
Gets or sets the data for the control's content.
public object Content { get; set; }
Property Value
Gets the StateNode.ContentControl control of this StateNode.
protected UIElement ContentControl { get; set; }
Property Value
Gets or sets the template used to display the content of the control's header.
public DataTemplate ContentTemplate { get; set; }
Property Value
Gets or sets a value that represents the degree to which the corners of the StateNode are rounded.
public CornerRadius CornerRadius { get; set; }
Property Value
Gets or sets the brush used when the PendingConnection.IsOverElementProperty attached property is true for this StateNode.
public Brush HighlightBrush { get; set; }
Property Value
public override void OnApplyTemplate();
protected override void OnMouseDown(MouseButtonEventArgs e);
Parameters
protected override void OnMouseUp(MouseButtonEventArgs e);
Parameters