2077 lines
61 KiB
Markdown
2077 lines
61 KiB
Markdown
# NodifyEditor Class
|
|
|
|
**Namespace:** Nodify
|
|
|
|
**Assembly:** Nodify
|
|
|
|
**Inheritance:** [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object) → [DispatcherObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Threading.DispatcherObject) → [DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject) → [Visual](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Visual) → [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement) → [FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement) → [Control](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Control) → [ItemsControl](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.ItemsControl) → [Selector](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Primitives.Selector) → [MultiSelector](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Primitives.MultiSelector) → [NodifyEditor](Nodify_NodifyEditor)
|
|
|
|
**Implements:** [IKeyboardNavigationLayer](Nodify_Interactivity_IKeyboardNavigationLayer), [IKeyboardNavigationLayerGroup](Nodify_Interactivity_IKeyboardNavigationLayerGroup), [IScrollInfo](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Primitives.IScrollInfo)
|
|
|
|
**References:** [Alignment](Nodify_Alignment), [BaseConnection](Nodify_BaseConnection), [Connection](Nodify_Connection), [ConnectionsMultiSelector](Nodify_ConnectionsMultiSelector), [Connector](Nodify_Connector), [EditorState.Cutting](Nodify_Interactivity_EditorState_Cutting), [CuttingLine](Nodify_CuttingLine), [DecoratorContainer](Nodify_DecoratorContainer), [DecoratorsControl](Nodify_DecoratorsControl), [EditorCommands](Nodify_EditorCommands), [EditorGestures](Nodify_Interactivity_EditorGestures), [GroupingNode](Nodify_GroupingNode), [IKeyboardFocusTarget\<ItemContainer\>](Nodify_Interactivity_IKeyboardFocusTarget_TElement_), [InputProcessor](Nodify_Interactivity_InputProcessor), [ItemContainer](Nodify_ItemContainer), [ItemsMovedEventArgs](Nodify_Events_ItemsMovedEventArgs), [ItemsMovedEventHandler](Nodify_Events_ItemsMovedEventHandler), [EditorState.KeyboardNavigation](Nodify_Interactivity_EditorState_KeyboardNavigation), [KeyboardNavigationLayerId](Nodify_Interactivity_KeyboardNavigationLayerId), [Minimap](Nodify_Minimap), [EditorState.Panning](Nodify_Interactivity_EditorState_Panning), [EditorState.PanningWithMouseWheel](Nodify_Interactivity_EditorState_PanningWithMouseWheel), [PendingConnection](Nodify_PendingConnection), [EditorState.PushingItems](Nodify_Interactivity_EditorState_PushingItems), [EditorState.Selecting](Nodify_Interactivity_EditorState_Selecting), [SelectionType](Nodify_SelectionType), [EditorState.Zooming](Nodify_Interactivity_EditorState_Zooming)
|
|
|
|
Groups [ItemContainer](Nodify_ItemContainer)s and [Connection](Nodify_Connection)s in an area that you can drag, zoom and select.
|
|
|
|
```csharp
|
|
public class NodifyEditor : MultiSelector, IKeyboardNavigationLayer, IKeyboardNavigationLayerGroup, IScrollInfo
|
|
```
|
|
|
|
## Constructors
|
|
|
|
### NodifyEditor()
|
|
|
|
Initializes a new instance of the [NodifyEditor](Nodify_NodifyEditor) class.
|
|
|
|
```csharp
|
|
public NodifyEditor();
|
|
```
|
|
|
|
## Fields
|
|
|
|
### CuttingConnectionTypes
|
|
|
|
The list of supported connection types for cutting. Type must be derived from [FrameworkElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement).
|
|
|
|
```csharp
|
|
public static HashSet<Type> CuttingConnectionTypes;
|
|
```
|
|
|
|
**Field Value**
|
|
|
|
[HashSet\<Type\>](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.HashSet-1)
|
|
|
|
### CuttingLineEndPropertyKey
|
|
|
|
```csharp
|
|
protected static DependencyPropertyKey CuttingLineEndPropertyKey;
|
|
```
|
|
|
|
**Field Value**
|
|
|
|
[DependencyPropertyKey](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyPropertyKey)
|
|
|
|
### CuttingLineStartPropertyKey
|
|
|
|
```csharp
|
|
protected static DependencyPropertyKey CuttingLineStartPropertyKey;
|
|
```
|
|
|
|
**Field Value**
|
|
|
|
[DependencyPropertyKey](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyPropertyKey)
|
|
|
|
### ElementConnectionsHost
|
|
|
|
```csharp
|
|
protected const string ElementConnectionsHost = "PART_ConnectionsHost";
|
|
```
|
|
|
|
**Field Value**
|
|
|
|
[String](https://docs.microsoft.com/en-us/dotnet/api/System.String)
|
|
|
|
### ElementItemsHost
|
|
|
|
```csharp
|
|
protected const string ElementItemsHost = "PART_ItemsHost";
|
|
```
|
|
|
|
**Field Value**
|
|
|
|
[String](https://docs.microsoft.com/en-us/dotnet/api/System.String)
|
|
|
|
### IsCuttingPropertyKey
|
|
|
|
```csharp
|
|
protected static DependencyPropertyKey IsCuttingPropertyKey;
|
|
```
|
|
|
|
**Field Value**
|
|
|
|
[DependencyPropertyKey](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyPropertyKey)
|
|
|
|
### IsDraggingPropertyKey
|
|
|
|
```csharp
|
|
protected static DependencyPropertyKey IsDraggingPropertyKey;
|
|
```
|
|
|
|
**Field Value**
|
|
|
|
[DependencyPropertyKey](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyPropertyKey)
|
|
|
|
### IsPanningPropertyKey
|
|
|
|
```csharp
|
|
protected static DependencyPropertyKey IsPanningPropertyKey;
|
|
```
|
|
|
|
**Field Value**
|
|
|
|
[DependencyPropertyKey](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyPropertyKey)
|
|
|
|
### IsPushingItemsPropertyKey
|
|
|
|
```csharp
|
|
protected static DependencyPropertyKey IsPushingItemsPropertyKey;
|
|
```
|
|
|
|
**Field Value**
|
|
|
|
[DependencyPropertyKey](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyPropertyKey)
|
|
|
|
### IsSelectingPropertyKey
|
|
|
|
```csharp
|
|
protected static DependencyPropertyKey IsSelectingPropertyKey;
|
|
```
|
|
|
|
**Field Value**
|
|
|
|
[DependencyPropertyKey](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyPropertyKey)
|
|
|
|
### PushedAreaOrientationPropertyKey
|
|
|
|
```csharp
|
|
protected static DependencyPropertyKey PushedAreaOrientationPropertyKey;
|
|
```
|
|
|
|
**Field Value**
|
|
|
|
[DependencyPropertyKey](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyPropertyKey)
|
|
|
|
### PushedAreaPropertyKey
|
|
|
|
```csharp
|
|
protected static DependencyPropertyKey PushedAreaPropertyKey;
|
|
```
|
|
|
|
**Field Value**
|
|
|
|
[DependencyPropertyKey](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyPropertyKey)
|
|
|
|
### ScaleTransform
|
|
|
|
Gets the transform used to zoom on the viewport.
|
|
|
|
```csharp
|
|
protected readonly ScaleTransform ScaleTransform;
|
|
```
|
|
|
|
**Field Value**
|
|
|
|
[ScaleTransform](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.ScaleTransform)
|
|
|
|
### SelectedAreaPropertyKey
|
|
|
|
```csharp
|
|
protected static DependencyPropertyKey SelectedAreaPropertyKey;
|
|
```
|
|
|
|
**Field Value**
|
|
|
|
[DependencyPropertyKey](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyPropertyKey)
|
|
|
|
### TranslateTransform
|
|
|
|
Gets the transform used to offset the viewport.
|
|
|
|
```csharp
|
|
protected readonly TranslateTransform TranslateTransform;
|
|
```
|
|
|
|
**Field Value**
|
|
|
|
[TranslateTransform](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.TranslateTransform)
|
|
|
|
### ViewportTransformPropertyKey
|
|
|
|
```csharp
|
|
protected static DependencyPropertyKey ViewportTransformPropertyKey;
|
|
```
|
|
|
|
**Field Value**
|
|
|
|
[DependencyPropertyKey](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyPropertyKey)
|
|
|
|
## Properties
|
|
|
|
### ActiveNavigationLayer
|
|
|
|
```csharp
|
|
public virtual IKeyboardNavigationLayer ActiveNavigationLayer { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[IKeyboardNavigationLayer](Nodify_Interactivity_IKeyboardNavigationLayer)
|
|
|
|
### AllowCuttingCancellation
|
|
|
|
Gets or sets whether cancelling a cutting operation is allowed (see Nodify.Interactivity.EditorGestures.NodifyEditorGestures.CancelAction).
|
|
|
|
```csharp
|
|
public static bool AllowCuttingCancellation { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### AllowDraggingCancellation
|
|
|
|
Gets or sets whether cancelling a dragging operation is allowed.
|
|
|
|
```csharp
|
|
public static bool AllowDraggingCancellation { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### AllowPanningCancellation
|
|
|
|
Gets or sets whether panning cancellation is allowed (see Nodify.Interactivity.EditorGestures.NodifyEditorGestures.CancelAction).
|
|
|
|
```csharp
|
|
public static bool AllowPanningCancellation { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### AllowPushItemsCancellation
|
|
|
|
Gets or sets whether push items cancellation is allowed (see Nodify.Interactivity.EditorGestures.NodifyEditorGestures.CancelAction).
|
|
|
|
```csharp
|
|
public static bool AllowPushItemsCancellation { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### AllowSelectionCancellation
|
|
|
|
Gets or sets whether cancelling a selection operation is allowed (see Nodify.Interactivity.EditorGestures.SelectionGestures.Cancel).
|
|
|
|
```csharp
|
|
public static bool AllowSelectionCancellation { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### AutoFocusFirstElement
|
|
|
|
Automatically focus the first container when the navigation layer changes or the editor gets focused.
|
|
|
|
```csharp
|
|
public static bool AutoFocusFirstElement { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### AutoPanEdgeDistance
|
|
|
|
Gets or sets the maximum distance in pixels from the edge of the editor that will trigger auto-panning.
|
|
|
|
```csharp
|
|
public double AutoPanEdgeDistance { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
|
|
|
|
### AutoPanningTickRate
|
|
|
|
Gets or sets how often the new [NodifyEditor.ViewportLocation](Nodify_NodifyEditor#viewportlocation) is calculated in milliseconds when [NodifyEditor.DisableAutoPanning](Nodify_NodifyEditor#disableautopanning) is false.
|
|
|
|
```csharp
|
|
public static double AutoPanningTickRate { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
|
|
|
|
### AutoPanOnNodeFocus
|
|
|
|
Automatically pan the viewport when a node is focused via keyboard navigation.
|
|
|
|
```csharp
|
|
public static bool AutoPanOnNodeFocus { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### AutoPanSpeed
|
|
|
|
Gets or sets the speed used when auto-panning scaled by [NodifyEditor.AutoPanningTickRate](Nodify_NodifyEditor#autopanningtickrate)
|
|
|
|
```csharp
|
|
public double AutoPanSpeed { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
|
|
|
|
### AutoRegisterConnectionsLayer
|
|
|
|
Automatically registers the connectors layer for keyboard navigation.
|
|
|
|
```csharp
|
|
public static bool AutoRegisterConnectionsLayer { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### AutoRegisterDecoratorsLayer
|
|
|
|
Automatically registers the decorators layer for keyboard navigation.
|
|
|
|
```csharp
|
|
public static bool AutoRegisterDecoratorsLayer { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### BringIntoViewEdgeOffset
|
|
|
|
Gets or sets the default viewport edge offset applied when bringing an item into view as a result of keyboard focus.
|
|
|
|
```csharp
|
|
public static double BringIntoViewEdgeOffset { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
|
|
|
|
### BringIntoViewMaxDuration
|
|
|
|
Gets or sets the maximum animation duration in seconds for bringing a location into view.
|
|
|
|
```csharp
|
|
public double BringIntoViewMaxDuration { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
|
|
|
|
### BringIntoViewSpeed
|
|
|
|
Gets or sets the animation speed in pixels per second for bringing a location into view.
|
|
|
|
```csharp
|
|
public double BringIntoViewSpeed { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
|
|
|
|
### CanSelectMultipleConnections
|
|
|
|
Gets or sets whether multiple connections can be selected.
|
|
|
|
```csharp
|
|
public bool CanSelectMultipleConnections { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### CanSelectMultipleItems
|
|
|
|
Gets or sets whether multiple [ItemContainer](Nodify_ItemContainer)s can be selected.
|
|
|
|
```csharp
|
|
public bool CanSelectMultipleItems { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### ConnectionCompletedCommand
|
|
|
|
Invoked when the [PendingConnection](Nodify_PendingConnection) is completed.
|
|
Use [PendingConnection.CompletedCommand](Nodify_PendingConnection#completedcommand) if you want to control the visibility of the connection from the viewmodel.
|
|
Parameter is System.Tuple`2 where System.Tuple`2.Item1 is the [PendingConnection.Source](Nodify_PendingConnection#source) and System.Tuple`2.Item2 is [PendingConnection.Target](Nodify_PendingConnection#target).
|
|
|
|
```csharp
|
|
public ICommand ConnectionCompletedCommand { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[ICommand](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ICommand)
|
|
|
|
### Connections
|
|
|
|
Gets or sets the data source that [BaseConnection](Nodify_BaseConnection)s will be generated for.
|
|
|
|
```csharp
|
|
public IEnumerable Connections { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[IEnumerable](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.IEnumerable)
|
|
|
|
### ConnectionStartedCommand
|
|
|
|
Invoked when the [PendingConnection](Nodify_PendingConnection) is completed.
|
|
Use [PendingConnection.StartedCommand](Nodify_PendingConnection#startedcommand) if you want to control the visibility of the connection from the viewmodel.
|
|
Parameter is [PendingConnection.Source](Nodify_PendingConnection#source).
|
|
|
|
```csharp
|
|
public ICommand ConnectionStartedCommand { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[ICommand](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ICommand)
|
|
|
|
### ConnectionTemplate
|
|
|
|
Gets or sets the [DataTemplate](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DataTemplate) to use when generating a new [BaseConnection](Nodify_BaseConnection).
|
|
|
|
```csharp
|
|
public DataTemplate ConnectionTemplate { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[DataTemplate](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DataTemplate)
|
|
|
|
### CuttingCompletedCommand
|
|
|
|
Invoked when a cutting operation is completed.
|
|
|
|
```csharp
|
|
public ICommand CuttingCompletedCommand { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[ICommand](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ICommand)
|
|
|
|
### CuttingLineEnd
|
|
|
|
Gets the end point of the [CuttingLine](Nodify_CuttingLine) while [NodifyEditor.IsCutting](Nodify_NodifyEditor#iscutting) is true.
|
|
|
|
```csharp
|
|
public Point CuttingLineEnd { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
|
|
|
|
### CuttingLineStart
|
|
|
|
Gets the start point of the [CuttingLine](Nodify_CuttingLine) while [NodifyEditor.IsCutting](Nodify_NodifyEditor#iscutting) is true.
|
|
|
|
```csharp
|
|
public Point CuttingLineStart { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
|
|
|
|
### CuttingLineStyle
|
|
|
|
Gets or sets the style to use for the cutting line.
|
|
|
|
```csharp
|
|
public Style CuttingLineStyle { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Style](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Style)
|
|
|
|
### CuttingStartedCommand
|
|
|
|
Invoked when a cutting operation is started.
|
|
|
|
```csharp
|
|
public ICommand CuttingStartedCommand { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[ICommand](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ICommand)
|
|
|
|
### DecoratorContainerStyle
|
|
|
|
Gets or sets the style to use for the [DecoratorContainer](Nodify_DecoratorContainer).
|
|
|
|
```csharp
|
|
public Style DecoratorContainerStyle { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Style](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Style)
|
|
|
|
### Decorators
|
|
|
|
Gets or sets the items that will be rendered in the decorators layer via [DecoratorContainer](Nodify_DecoratorContainer)s.
|
|
|
|
```csharp
|
|
public IEnumerable Decorators { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[IEnumerable](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.IEnumerable)
|
|
|
|
### DecoratorsExtent
|
|
|
|
The area covered by the [DecoratorContainer](Nodify_DecoratorContainer)s.
|
|
|
|
```csharp
|
|
public Rect DecoratorsExtent { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Rect](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Rect)
|
|
|
|
### DecoratorTemplate
|
|
|
|
Gets or sets the [DataTemplate](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DataTemplate) to use when generating a new [DecoratorContainer](Nodify_DecoratorContainer).
|
|
|
|
```csharp
|
|
public DataTemplate DecoratorTemplate { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[DataTemplate](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DataTemplate)
|
|
|
|
### DisableAutoPanning
|
|
|
|
Gets or sets whether to disable the auto panning when selecting or dragging near the edge of the editor configured by [NodifyEditor.AutoPanEdgeDistance](Nodify_NodifyEditor#autopanedgedistance).
|
|
|
|
```csharp
|
|
public bool DisableAutoPanning { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### DisablePanning
|
|
|
|
Gets or sets whether panning should be disabled.
|
|
|
|
```csharp
|
|
public bool DisablePanning { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### DisableZooming
|
|
|
|
Gets or sets whether zooming should be disabled.
|
|
|
|
```csharp
|
|
public bool DisableZooming { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### DisconnectConnectorCommand
|
|
|
|
Invoked when the [Connector.Disconnect](Nodify_Connector#disconnect) event is raised.
|
|
Can also be handled at the [Connector](Nodify_Connector) level using the [Connector.DisconnectCommand](Nodify_Connector#disconnectcommand) command.
|
|
Parameter is the [Connector](Nodify_Connector)'s [FrameworkElement.DataContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement#datacontext).
|
|
|
|
```csharp
|
|
public ICommand DisconnectConnectorCommand { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[ICommand](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ICommand)
|
|
|
|
### DisplayConnectionsOnTop
|
|
|
|
Gets or sets whether to display connections on top of [ItemContainer](Nodify_ItemContainer)s or not.
|
|
|
|
```csharp
|
|
public bool DisplayConnectionsOnTop { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### EnableCuttingLinePreview
|
|
|
|
Gets or sets whether the cutting line should apply the preview style to the interesected elements.
|
|
|
|
```csharp
|
|
public static bool EnableCuttingLinePreview { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### EnableDraggingContainersOptimizations
|
|
|
|
Gets or sets if the current position of containers that are being dragged should not be committed until the end of the dragging operation.
|
|
|
|
```csharp
|
|
public static bool EnableDraggingContainersOptimizations { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### EnableRealtimeSelection
|
|
|
|
Enables selecting and deselecting items while the [NodifyEditor.SelectedArea](Nodify_NodifyEditor#selectedarea) changes.
|
|
Disable for maximum performance when hundreds of items are generated.
|
|
|
|
```csharp
|
|
public bool EnableRealtimeSelection { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### EnableRenderingContainersOptimizations
|
|
|
|
Gets or sets if [NodifyEditor](Nodify_NodifyEditor)s should enable optimizations based on [NodifyEditor.OptimizeRenderingMinimumContainers](Nodify_NodifyEditor#optimizerenderingminimumcontainers) and [NodifyEditor.OptimizeRenderingZoomOutPercent](Nodify_NodifyEditor#optimizerenderingzoomoutpercent).
|
|
|
|
```csharp
|
|
public static bool EnableRenderingContainersOptimizations { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### EnableSnappingCorrection
|
|
|
|
Correct [ItemContainer](Nodify_ItemContainer)'s position after moving if starting position is not snapped to grid.
|
|
|
|
```csharp
|
|
public static bool EnableSnappingCorrection { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### FitToScreenExtentMargin
|
|
|
|
Gets or sets the margin to add in all directions to the [NodifyEditor.ItemsExtent](Nodify_NodifyEditor#itemsextent) or area parameter when using Nodify.NodifyEditor.FitToScreen(System.Nullable{System.Windows.Rect}).
|
|
|
|
```csharp
|
|
public static double FitToScreenExtentMargin { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
|
|
|
|
### GridCellSize
|
|
|
|
Gets or sets the value of an invisible grid used to adjust locations (snapping) of [ItemContainer](Nodify_ItemContainer)s.
|
|
|
|
```csharp
|
|
public uint GridCellSize { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[UInt32](https://docs.microsoft.com/en-us/dotnet/api/System.UInt32)
|
|
|
|
### HasContextMenu
|
|
|
|
Gets a value indicating whether the editor has a context menu.
|
|
|
|
```csharp
|
|
public bool HasContextMenu { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### HasCustomContextMenu
|
|
|
|
Gets or sets a value indicating whether the editor uses a custom context menu.
|
|
|
|
```csharp
|
|
public bool HasCustomContextMenu { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### InputProcessor
|
|
|
|
```csharp
|
|
protected InputProcessor InputProcessor { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[InputProcessor](Nodify_Interactivity_InputProcessor)
|
|
|
|
### IsBulkUpdatingItems
|
|
|
|
Tells if the [NodifyEditor](Nodify_NodifyEditor) is doing operations on multiple items at once.
|
|
|
|
```csharp
|
|
public bool IsBulkUpdatingItems { get; protected set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### IsCutting
|
|
|
|
Gets a value that indicates whether a cutting operation is in progress.
|
|
|
|
```csharp
|
|
public bool IsCutting { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### IsDragging
|
|
|
|
Gets a value that indicates whether a dragging operation is in progress.
|
|
|
|
```csharp
|
|
public bool IsDragging { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### IsPanning
|
|
|
|
Gets a value that indicates whether a panning operation is in progress.
|
|
|
|
```csharp
|
|
public bool IsPanning { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### IsPushingItems
|
|
|
|
Gets a value that indicates whether a pushing operation is in progress.
|
|
|
|
```csharp
|
|
public bool IsPushingItems { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### IsSelecting
|
|
|
|
Gets a value that indicates whether a selection operation is in progress.
|
|
|
|
```csharp
|
|
public bool IsSelecting { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### ItemsDragCompletedCommand
|
|
|
|
Invoked when a drag operation is completed for the [NodifyEditor.SelectedContainers](Nodify_NodifyEditor#selectedcontainers), or when [NodifyEditor.IsPushingItems](Nodify_NodifyEditor#ispushingitems) is set to false.
|
|
|
|
```csharp
|
|
public ICommand ItemsDragCompletedCommand { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[ICommand](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ICommand)
|
|
|
|
### ItemsDragStartedCommand
|
|
|
|
Invoked when a drag operation starts for the [NodifyEditor.SelectedContainers](Nodify_NodifyEditor#selectedcontainers), or when [NodifyEditor.IsPushingItems](Nodify_NodifyEditor#ispushingitems) is set to true.
|
|
|
|
```csharp
|
|
public ICommand ItemsDragStartedCommand { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[ICommand](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ICommand)
|
|
|
|
### ItemsExtent
|
|
|
|
The area covered by the [ItemContainer](Nodify_ItemContainer)s.
|
|
|
|
```csharp
|
|
public Rect ItemsExtent { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Rect](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Rect)
|
|
|
|
### ItemsSelectCompletedCommand
|
|
|
|
Invoked when a selection operation is completed (see Nodify.NodifyEditor.EndSelecting).
|
|
|
|
```csharp
|
|
public ICommand ItemsSelectCompletedCommand { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[ICommand](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ICommand)
|
|
|
|
### ItemsSelectStartedCommand
|
|
|
|
Invoked when a selection operation is started (see Nodify.NodifyEditor.BeginSelecting(Nodify.SelectionType)).
|
|
|
|
```csharp
|
|
public ICommand ItemsSelectStartedCommand { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[ICommand](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ICommand)
|
|
|
|
### KeyboardNavigationLayer
|
|
|
|
```csharp
|
|
public IKeyboardNavigationLayer KeyboardNavigationLayer { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[IKeyboardNavigationLayer](Nodify_Interactivity_IKeyboardNavigationLayer)
|
|
|
|
### MaxViewportZoom
|
|
|
|
Gets or sets the maximum zoom factor of the viewport
|
|
|
|
```csharp
|
|
public double MaxViewportZoom { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
|
|
|
|
### MinimumNavigationStepSize
|
|
|
|
Defines the minimum distance to move or navigate when using directional input (such as arrow keys), scaled by the [NodifyEditor.ViewportZoom](Nodify_NodifyEditor#viewportzoom).
|
|
If the [NodifyEditor.GridCellSize](Nodify_NodifyEditor#gridcellsize) is smaller than this value, the movement step is increased to the nearest greater multiple of the [NodifyEditor.GridCellSize](Nodify_NodifyEditor#gridcellsize).
|
|
|
|
```csharp
|
|
public static double MinimumNavigationStepSize { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
|
|
|
|
### MinViewportZoom
|
|
|
|
Gets or sets the minimum zoom factor of the viewport
|
|
|
|
```csharp
|
|
public double MinViewportZoom { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
|
|
|
|
### MouseActionSuppressionThreshold
|
|
|
|
Gets or sets the maximum distance, in pixels, that the mouse can move before suppressing certain mouse actions.
|
|
This is useful for suppressing actions like showing a System.Windows.Controls.ContextMenu if the mouse has moved significantly.
|
|
|
|
```csharp
|
|
public static double MouseActionSuppressionThreshold { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
|
|
|
|
### MouseLocation
|
|
|
|
Gets the current mouse location in graph space coordinates (relative to the [NodifyEditor.ItemsHost](Nodify_NodifyEditor#itemshost)).
|
|
|
|
```csharp
|
|
public Point MouseLocation { get; protected set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
|
|
|
|
### OptimizeRenderingMinimumContainers
|
|
|
|
Gets or sets the minimum number of [ItemContainer](Nodify_ItemContainer)s needed to trigger optimizations when reaching the [NodifyEditor.OptimizeRenderingZoomOutPercent](Nodify_NodifyEditor#optimizerenderingzoomoutpercent).
|
|
|
|
```csharp
|
|
public static uint OptimizeRenderingMinimumContainers { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[UInt32](https://docs.microsoft.com/en-us/dotnet/api/System.UInt32)
|
|
|
|
### OptimizeRenderingZoomOutPercent
|
|
|
|
Gets or sets the minimum zoom out percent needed to start optimizing the rendering for [ItemContainer](Nodify_ItemContainer)s.
|
|
Value is between 0 and 1.
|
|
|
|
```csharp
|
|
public static double OptimizeRenderingZoomOutPercent { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
|
|
|
|
### PanViewportOnKeyboardDrag
|
|
|
|
Indicates whether the viewport should automatically pan to follow elements moved via keyboard dragging.
|
|
|
|
```csharp
|
|
public static bool PanViewportOnKeyboardDrag { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### PendingConnection
|
|
|
|
Gets of sets the [FrameworkElement.DataContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement#datacontext) of the [PendingConnection](Nodify_PendingConnection).
|
|
|
|
```csharp
|
|
public object PendingConnection { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
|
|
|
|
### PendingConnectionTemplate
|
|
|
|
Gets or sets the [DataTemplate](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DataTemplate) to use for the [NodifyEditor.PendingConnection](Nodify_NodifyEditor#pendingconnection).
|
|
|
|
```csharp
|
|
public DataTemplate PendingConnectionTemplate { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[DataTemplate](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DataTemplate)
|
|
|
|
### PushedArea
|
|
|
|
Gets the currently pushed area while [NodifyEditor.IsPushingItems](Nodify_NodifyEditor#ispushingitems) is true.
|
|
|
|
```csharp
|
|
public Rect PushedArea { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Rect](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Rect)
|
|
|
|
### PushedAreaOrientation
|
|
|
|
Gets the orientation of the [NodifyEditor.PushedArea](Nodify_NodifyEditor#pushedarea).
|
|
|
|
```csharp
|
|
public Orientation PushedAreaOrientation { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Orientation](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Orientation)
|
|
|
|
### PushedAreaStyle
|
|
|
|
Gets or sets the style to use for the pushed area.
|
|
|
|
```csharp
|
|
public Style PushedAreaStyle { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Style](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Style)
|
|
|
|
### RemoveConnectionCommand
|
|
|
|
Invoked when the [BaseConnection.Disconnect](Nodify_BaseConnection#disconnect) event is raised.
|
|
Can also be handled at the [BaseConnection](Nodify_BaseConnection) level using the [BaseConnection.DisconnectCommand](Nodify_BaseConnection#disconnectcommand) command.
|
|
Parameter is the [BaseConnection](Nodify_BaseConnection)'s [FrameworkElement.DataContext](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.FrameworkElement#datacontext).
|
|
|
|
```csharp
|
|
public ICommand RemoveConnectionCommand { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[ICommand](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.ICommand)
|
|
|
|
### ScrollIncrement
|
|
|
|
The number of units the mouse wheel is rotated to scroll one line.
|
|
|
|
```csharp
|
|
public static double ScrollIncrement { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
|
|
|
|
### SelectedArea
|
|
|
|
Gets the currently selected area while [NodifyEditor.IsSelecting](Nodify_NodifyEditor#isselecting) is true.
|
|
|
|
```csharp
|
|
public Rect SelectedArea { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Rect](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Rect)
|
|
|
|
### SelectedConnection
|
|
|
|
Gets or sets the selected connection.
|
|
|
|
```csharp
|
|
public object SelectedConnection { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
|
|
|
|
### SelectedConnections
|
|
|
|
Gets or sets the selected connections in the [NodifyEditor](Nodify_NodifyEditor).
|
|
|
|
```csharp
|
|
public IList SelectedConnections { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[IList](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.IList)
|
|
|
|
### SelectedContainersCount
|
|
|
|
Gets the number of selected containers, without allocating (see [NodifyEditor.SelectedContainers](Nodify_NodifyEditor#selectedcontainers)).
|
|
|
|
```csharp
|
|
public int SelectedContainersCount { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Int32](https://docs.microsoft.com/en-us/dotnet/api/System.Int32)
|
|
|
|
### SelectedItems
|
|
|
|
Gets or sets the selected items in the [NodifyEditor](Nodify_NodifyEditor).
|
|
|
|
```csharp
|
|
public IList SelectedItems { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[IList](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.IList)
|
|
|
|
### SelectionRectangleStyle
|
|
|
|
Gets or sets the style to use for the selection rectangle.
|
|
|
|
```csharp
|
|
public Style SelectionRectangleStyle { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Style](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Style)
|
|
|
|
### ViewportLocation
|
|
|
|
Gets or sets the viewport's top-left coordinates in graph space coordinates.
|
|
|
|
```csharp
|
|
public Point ViewportLocation { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
|
|
|
|
### ViewportSize
|
|
|
|
Gets the size of the viewport in graph space (scaled by the [NodifyEditor.ViewportZoom](Nodify_NodifyEditor#viewportzoom)).
|
|
|
|
```csharp
|
|
public Size ViewportSize { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Size](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Size)
|
|
|
|
### ViewportTransform
|
|
|
|
Gets the transform that is applied to all child controls.
|
|
|
|
```csharp
|
|
public Transform ViewportTransform { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Transform](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Media.Transform)
|
|
|
|
### ViewportZoom
|
|
|
|
Gets or sets the zoom factor of the viewport.
|
|
|
|
```csharp
|
|
public double ViewportZoom { get; set; }
|
|
```
|
|
|
|
**Property Value**
|
|
|
|
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
|
|
|
|
## Methods
|
|
|
|
### ActivateNavigationLayer(KeyboardNavigationLayerId)
|
|
|
|
```csharp
|
|
public virtual bool ActivateNavigationLayer(KeyboardNavigationLayerId layerId);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`layerId` [KeyboardNavigationLayerId](Nodify_Interactivity_KeyboardNavigationLayerId)
|
|
|
|
**Returns**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### ActivateNextNavigationLayer()
|
|
|
|
```csharp
|
|
public virtual bool ActivateNextNavigationLayer();
|
|
```
|
|
|
|
**Returns**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### ActivatePreviousNavigationLayer()
|
|
|
|
```csharp
|
|
public virtual bool ActivatePreviousNavigationLayer();
|
|
```
|
|
|
|
**Returns**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### AlignContainers(IEnumerable\<ItemContainer\>, Alignment, ItemContainer)
|
|
|
|
Aligns a collection of containers based on the specified alignment.
|
|
|
|
```csharp
|
|
public void AlignContainers(IEnumerable<ItemContainer> containers, Alignment alignment, ItemContainer relativeTo = null);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`containers` [IEnumerable\<ItemContainer\>](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IEnumerable-1): The collection of item containers to align.
|
|
|
|
`alignment` [Alignment](Nodify_Alignment): The alignment type to apply to the containers.
|
|
|
|
`relativeTo` [ItemContainer](Nodify_ItemContainer): An optional container to use as a reference for alignment. If null, the alignment is based on the containers themselves.
|
|
|
|
### AlignSelection(Alignment, ItemContainer)
|
|
|
|
Aligns the selected containers based on the specified alignment.
|
|
|
|
```csharp
|
|
public void AlignSelection(Alignment alignment, ItemContainer relativeTo = null);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`alignment` [Alignment](Nodify_Alignment): The alignment type to apply to the selected containers.
|
|
|
|
`relativeTo` [ItemContainer](Nodify_ItemContainer): An optional container to use as a reference for alignment. If null, the alignment is based on the containers themselves.
|
|
|
|
### BeginCutting()
|
|
|
|
Starts the cutting operation at the specified location. Call Nodify.NodifyEditor.EndCutting to complete the operation or Nodify.NodifyEditor.CancelCutting to abort it.
|
|
|
|
```csharp
|
|
public void BeginCutting();
|
|
```
|
|
|
|
### BeginCutting(Point)
|
|
|
|
```csharp
|
|
public void BeginCutting(Point location);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`location` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
|
|
|
|
### BeginDragging()
|
|
|
|
Initiates the dragging operation for the specified [ItemContainer](Nodify_ItemContainer)s. Call Nodify.NodifyEditor.EndDragging to complete the operation or Nodify.NodifyEditor.CancelDragging to abort it.
|
|
|
|
```csharp
|
|
public void BeginDragging();
|
|
```
|
|
|
|
### BeginDragging(IEnumerable\<ItemContainer\>)
|
|
|
|
```csharp
|
|
public void BeginDragging(IEnumerable<ItemContainer> containers);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`containers` [IEnumerable\<ItemContainer\>](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IEnumerable-1)
|
|
|
|
### BeginPanning(Point)
|
|
|
|
Starts the panning operation from the specified location. Call Nodify.NodifyEditor.EndPanning to end the panning operation.
|
|
|
|
```csharp
|
|
public void BeginPanning(Point location);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`location` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point): The initial location where panning starts, in graph space coordinates.
|
|
|
|
### BeginPanning()
|
|
|
|
Starts the panning operation from the current [NodifyEditor.ViewportLocation](Nodify_NodifyEditor#viewportlocation).
|
|
|
|
```csharp
|
|
public void BeginPanning();
|
|
```
|
|
|
|
### BeginPushingItems(Point, Orientation)
|
|
|
|
Starts the pushing items operation at the specified location with the specified orientation.
|
|
|
|
```csharp
|
|
public void BeginPushingItems(Point location, Orientation orientation);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`location` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point): The starting location for pushing items, in graph space coordinates.
|
|
|
|
`orientation` [Orientation](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.Orientation): The orientation of the [NodifyEditor.PushedArea](Nodify_NodifyEditor#pushedarea).
|
|
|
|
### BeginSelecting(SelectionType)
|
|
|
|
Initiates a selection operation from the specified location.
|
|
|
|
```csharp
|
|
public void BeginSelecting(SelectionType type = 0);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`type` [SelectionType](Nodify_SelectionType): The type of selection to perform. Defaults to [SelectionType.Replace](Nodify_SelectionType#replace).
|
|
|
|
### BeginSelecting(Point, SelectionType)
|
|
|
|
```csharp
|
|
public void BeginSelecting(Point location, SelectionType type = 0);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`location` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point)
|
|
|
|
`type` [SelectionType](Nodify_SelectionType)
|
|
|
|
### BringIntoView(Point, Boolean, Action)
|
|
|
|
Moves the viewport center at the specified location.
|
|
|
|
```csharp
|
|
public void BringIntoView(Point point, bool animated = true, Action onFinish = null);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`point` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point): The location in graph space coordinates.
|
|
|
|
`animated` [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean): True to animate the movement.
|
|
|
|
`onFinish` [Action](https://docs.microsoft.com/en-us/dotnet/api/System.Action): The callback invoked when movement is finished.
|
|
|
|
### BringIntoView(Rect)
|
|
|
|
Ensures the specified item container is fully visible within the viewport, optionally with padding around the edges.
|
|
|
|
```csharp
|
|
public void BringIntoView(Rect area);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`area` [Rect](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Rect): The location in graph space coordinates.
|
|
|
|
### BringIntoView(Rect, Double)
|
|
|
|
```csharp
|
|
public void BringIntoView(Rect area, double offsetFromEdge = 32d);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`area` [Rect](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Rect)
|
|
|
|
`offsetFromEdge` [Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double)
|
|
|
|
### CancelCutting()
|
|
|
|
Cancels the current cutting operation without applying any changes if [NodifyEditor.AllowCuttingCancellation](Nodify_NodifyEditor#allowcuttingcancellation) is true.
|
|
Otherwise, it ends the cutting operation by calling Nodify.NodifyEditor.EndCutting.
|
|
|
|
```csharp
|
|
public void CancelCutting();
|
|
```
|
|
|
|
### CancelDragging()
|
|
|
|
Cancels the ongoing dragging operation, reverting any changes made to the positions of the dragged items if [NodifyEditor.AllowDraggingCancellation](Nodify_NodifyEditor#allowdraggingcancellation) is true.
|
|
Otherwise, it ends the dragging operation by calling Nodify.NodifyEditor.EndDragging.
|
|
|
|
```csharp
|
|
public void CancelDragging();
|
|
```
|
|
|
|
### CancelPanning()
|
|
|
|
Cancels the current panning operation and reverts the viewport to its initial location if [NodifyEditor.AllowPanningCancellation](Nodify_NodifyEditor#allowpanningcancellation) is true.
|
|
Otherwise, it ends the panning operation by calling Nodify.NodifyEditor.EndPanning.
|
|
|
|
```csharp
|
|
public void CancelPanning();
|
|
```
|
|
|
|
### CancelPushingItems()
|
|
|
|
Cancels the current pushing operation and reverts the [NodifyEditor.PushedArea](Nodify_NodifyEditor#pushedarea) to its initial state if [NodifyEditor.AllowPushItemsCancellation](Nodify_NodifyEditor#allowpushitemscancellation) is true.
|
|
Otherwise, it ends the pushing operation by calling Nodify.NodifyEditor.EndPushingItems.
|
|
|
|
```csharp
|
|
public void CancelPushingItems();
|
|
```
|
|
|
|
### CancelSelecting()
|
|
|
|
Cancels the current selection operation and reverts any changes made during the selection process if [NodifyEditor.AllowSelectionCancellation](Nodify_NodifyEditor#allowselectioncancellation) is true.
|
|
Otherwise, it ends the selection operation by calling Nodify.NodifyEditor.EndSelecting.
|
|
|
|
```csharp
|
|
public void CancelSelecting();
|
|
```
|
|
|
|
### EndCutting()
|
|
|
|
Completes the cutting operation and applies the changes.
|
|
|
|
```csharp
|
|
public void EndCutting();
|
|
```
|
|
|
|
### EndDragging()
|
|
|
|
Completes the dragging operation, finalizing the position of the dragged items. Raises the [NodifyEditor.ItemsMoved](Nodify_NodifyEditor#itemsmoved) event.
|
|
|
|
```csharp
|
|
public void EndDragging();
|
|
```
|
|
|
|
### EndPanning()
|
|
|
|
Ends the current panning operation, retaining the current [NodifyEditor.ViewportLocation](Nodify_NodifyEditor#viewportlocation).
|
|
|
|
```csharp
|
|
public void EndPanning();
|
|
```
|
|
|
|
### EndPushingItems()
|
|
|
|
Ends the current pushing operation and finalizes the pushed area state.
|
|
|
|
```csharp
|
|
public void EndPushingItems();
|
|
```
|
|
|
|
### EndSelecting()
|
|
|
|
Completes the selection operation and applies any pending changes.
|
|
|
|
```csharp
|
|
public void EndSelecting();
|
|
```
|
|
|
|
### FindNextFocusTarget(ItemContainer, TraversalRequest)
|
|
|
|
```csharp
|
|
protected virtual ItemContainer FindNextFocusTarget(ItemContainer currentContainer, TraversalRequest request);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`currentContainer` [ItemContainer](Nodify_ItemContainer)
|
|
|
|
`request` [TraversalRequest](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.TraversalRequest)
|
|
|
|
**Returns**
|
|
|
|
[ItemContainer](Nodify_ItemContainer)
|
|
|
|
### FitToScreen(Rect?)
|
|
|
|
Scales the viewport to fit the specified area or all the [ItemContainer](Nodify_ItemContainer)s if that's possible.
|
|
|
|
```csharp
|
|
public void FitToScreen(Rect? area = null);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`area` [Rect?](https://docs.microsoft.com/en-us/dotnet/api/System.Nullable-1)
|
|
|
|
### GetContainerForItemOverride()
|
|
|
|
```csharp
|
|
protected override DependencyObject GetContainerForItemOverride();
|
|
```
|
|
|
|
**Returns**
|
|
|
|
[DependencyObject](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DependencyObject)
|
|
|
|
### GetEnumerator()
|
|
|
|
```csharp
|
|
public virtual IEnumerator<IKeyboardNavigationLayer> GetEnumerator();
|
|
```
|
|
|
|
**Returns**
|
|
|
|
[IEnumerator\<IKeyboardNavigationLayer\>](https://docs.microsoft.com/en-us/dotnet/api/System.Collections.Generic.IEnumerator-1)
|
|
|
|
### GetLocationInsideEditor(Point, UIElement)
|
|
|
|
Translates the specified location to graph space coordinates (relative to the [NodifyEditor.ItemsHost](Nodify_NodifyEditor#itemshost)).
|
|
|
|
```csharp
|
|
public Point GetLocationInsideEditor(Point location, UIElement relativeTo);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`location` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point): The location coordinates relative to relativeTo
|
|
|
|
`relativeTo` [UIElement](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement): The element where the location was calculated from.
|
|
|
|
**Returns**
|
|
|
|
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point): A location inside the graph.
|
|
|
|
### GetLocationInsideEditor(DragEventArgs)
|
|
|
|
Translates the event location to graph space coordinates (relative to the [NodifyEditor.ItemsHost](Nodify_NodifyEditor#itemshost)).
|
|
|
|
```csharp
|
|
public Point GetLocationInsideEditor(DragEventArgs args);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`args` [DragEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.DragEventArgs): The drag event.
|
|
|
|
**Returns**
|
|
|
|
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point): A location inside the graph
|
|
|
|
### GetLocationInsideEditor(MouseEventArgs)
|
|
|
|
Translates the event location to graph space coordinates (relative to the [NodifyEditor.ItemsHost](Nodify_NodifyEditor#itemshost)).
|
|
|
|
```csharp
|
|
public Point GetLocationInsideEditor(MouseEventArgs args);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`args` [MouseEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseEventArgs): The mouse event.
|
|
|
|
**Returns**
|
|
|
|
[Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point): A location inside the graph
|
|
|
|
### InvertSelection(Rect, Boolean)
|
|
|
|
Inverts the [ItemContainer](Nodify_ItemContainer)s selection in the specified area.
|
|
|
|
```csharp
|
|
public void InvertSelection(Rect area, bool fit = false);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`area` [Rect](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Rect): The area to look for [ItemContainer](Nodify_ItemContainer)s.
|
|
|
|
`fit` [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean): True to check if the area contains the [ItemContainer](Nodify_ItemContainer). False to check if area intersects the [ItemContainer](Nodify_ItemContainer).
|
|
|
|
### IsItemItsOwnContainerOverride(Object)
|
|
|
|
```csharp
|
|
protected override bool IsItemItsOwnContainerOverride(object item);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`item` [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
|
|
|
|
**Returns**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### LockSelection()
|
|
|
|
Locks the position of the [NodifyEditor.SelectedContainers](Nodify_NodifyEditor#selectedcontainers).
|
|
|
|
```csharp
|
|
public void LockSelection();
|
|
```
|
|
|
|
### MoveFocus(FocusNavigationDirection)
|
|
|
|
```csharp
|
|
public bool MoveFocus(FocusNavigationDirection direction);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`direction` [FocusNavigationDirection](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.FocusNavigationDirection)
|
|
|
|
**Returns**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### MoveFocus(TraversalRequest)
|
|
|
|
```csharp
|
|
public bool MoveFocus(TraversalRequest request);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`request` [TraversalRequest](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.TraversalRequest)
|
|
|
|
**Returns**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### OnApplyTemplate()
|
|
|
|
```csharp
|
|
public override void OnApplyTemplate();
|
|
```
|
|
|
|
### OnElementFocused(IKeyboardFocusTarget\<ItemContainer\>)
|
|
|
|
```csharp
|
|
protected virtual void OnElementFocused(IKeyboardFocusTarget<ItemContainer> target);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`target` [IKeyboardFocusTarget\<ItemContainer\>](Nodify_Interactivity_IKeyboardFocusTarget_TElement_)
|
|
|
|
### OnGotKeyboardFocus(KeyboardFocusChangedEventArgs)
|
|
|
|
```csharp
|
|
protected override void OnGotKeyboardFocus(KeyboardFocusChangedEventArgs e);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`e` [KeyboardFocusChangedEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.KeyboardFocusChangedEventArgs)
|
|
|
|
### OnKeyboardNavigationLayerActivated(IKeyboardNavigationLayer)
|
|
|
|
```csharp
|
|
protected virtual void OnKeyboardNavigationLayerActivated(IKeyboardNavigationLayer activeLayer);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`activeLayer` [IKeyboardNavigationLayer](Nodify_Interactivity_IKeyboardNavigationLayer)
|
|
|
|
### OnKeyDown(KeyEventArgs)
|
|
|
|
```csharp
|
|
protected override void OnKeyDown(KeyEventArgs e);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`e` [KeyEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.KeyEventArgs)
|
|
|
|
### OnKeyUp(KeyEventArgs)
|
|
|
|
```csharp
|
|
protected override void OnKeyUp(KeyEventArgs e);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`e` [KeyEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.KeyEventArgs)
|
|
|
|
### OnLostKeyboardFocus(KeyboardFocusChangedEventArgs)
|
|
|
|
```csharp
|
|
protected override void OnLostKeyboardFocus(KeyboardFocusChangedEventArgs e);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`e` [KeyboardFocusChangedEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.KeyboardFocusChangedEventArgs)
|
|
|
|
### OnLostMouseCapture(MouseEventArgs)
|
|
|
|
```csharp
|
|
protected override void OnLostMouseCapture(MouseEventArgs e);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`e` [MouseEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseEventArgs)
|
|
|
|
### OnMouseDown(MouseButtonEventArgs)
|
|
|
|
```csharp
|
|
protected override void OnMouseDown(MouseButtonEventArgs e);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`e` [MouseButtonEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseButtonEventArgs)
|
|
|
|
### OnMouseMove(MouseEventArgs)
|
|
|
|
```csharp
|
|
protected override void OnMouseMove(MouseEventArgs e);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`e` [MouseEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseEventArgs)
|
|
|
|
### OnMouseUp(MouseButtonEventArgs)
|
|
|
|
```csharp
|
|
protected override void OnMouseUp(MouseButtonEventArgs e);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`e` [MouseButtonEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseButtonEventArgs)
|
|
|
|
### OnMouseWheel(MouseWheelEventArgs)
|
|
|
|
```csharp
|
|
protected override void OnMouseWheel(MouseWheelEventArgs e);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`e` [MouseWheelEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Input.MouseWheelEventArgs)
|
|
|
|
### OnRemoveConnection(Object)
|
|
|
|
```csharp
|
|
protected void OnRemoveConnection(object dataContext);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`dataContext` [Object](https://docs.microsoft.com/en-us/dotnet/api/System.Object)
|
|
|
|
### OnRenderSizeChanged(SizeChangedInfo)
|
|
|
|
```csharp
|
|
protected override void OnRenderSizeChanged(SizeChangedInfo sizeInfo);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`sizeInfo` [SizeChangedInfo](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.SizeChangedInfo)
|
|
|
|
### OnSelectionChanged(SelectionChangedEventArgs)
|
|
|
|
```csharp
|
|
protected override void OnSelectionChanged(SelectionChangedEventArgs e);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`e` [SelectionChangedEventArgs](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Controls.SelectionChangedEventArgs)
|
|
|
|
### OnViewportUpdated()
|
|
|
|
Updates the [NodifyEditor.ViewportSize](Nodify_NodifyEditor#viewportsize) and raises the [NodifyEditor.ViewportUpdatedEvent](Nodify_NodifyEditor#viewportupdatedevent).
|
|
Called when the [UIElement.RenderSize](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.UIElement#rendersize) or [NodifyEditor.ViewportZoom](Nodify_NodifyEditor#viewportzoom) is changed.
|
|
|
|
```csharp
|
|
protected void OnViewportUpdated();
|
|
```
|
|
|
|
### RegisterNavigationLayer(IKeyboardNavigationLayer)
|
|
|
|
```csharp
|
|
public virtual bool RegisterNavigationLayer(IKeyboardNavigationLayer layer);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`layer` [IKeyboardNavigationLayer](Nodify_Interactivity_IKeyboardNavigationLayer)
|
|
|
|
**Returns**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### RemoveNavigationLayer(KeyboardNavigationLayerId)
|
|
|
|
```csharp
|
|
public virtual bool RemoveNavigationLayer(KeyboardNavigationLayerId layerId);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`layerId` [KeyboardNavigationLayerId](Nodify_Interactivity_KeyboardNavigationLayerId)
|
|
|
|
**Returns**
|
|
|
|
[Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean)
|
|
|
|
### ResetViewport(Boolean, Action)
|
|
|
|
Reset the viewport location to (0, 0) and the viewport zoom to 1.
|
|
|
|
```csharp
|
|
public void ResetViewport(bool animated = true, Action onFinish = null);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`animated` [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean): Whether the viewport transition is animated.
|
|
|
|
`onFinish` [Action](https://docs.microsoft.com/en-us/dotnet/api/System.Action): The callback invoked when the viewport transition is finished.
|
|
|
|
### Select(ItemContainer)
|
|
|
|
Clears the current selection and selects the specified [ItemContainer](Nodify_ItemContainer) within the same selection transaction.
|
|
|
|
```csharp
|
|
public void Select(ItemContainer container);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`container` [ItemContainer](Nodify_ItemContainer)
|
|
|
|
### SelectAllConnections()
|
|
|
|
Select all [NodifyEditor.Connections](Nodify_NodifyEditor#connections).
|
|
|
|
```csharp
|
|
public void SelectAllConnections();
|
|
```
|
|
|
|
### SelectArea(Rect, Boolean, Boolean)
|
|
|
|
Selects the [ItemContainer](Nodify_ItemContainer)s in the specified area.
|
|
|
|
```csharp
|
|
public void SelectArea(Rect area, bool append = false, bool fit = false);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`area` [Rect](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Rect): The area to look for [ItemContainer](Nodify_ItemContainer)s.
|
|
|
|
`append` [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean): If true, it will add to the existing selection.
|
|
|
|
`fit` [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean): True to check if the area contains the [ItemContainer](Nodify_ItemContainer). False to check if area intersects the [ItemContainer](Nodify_ItemContainer).
|
|
|
|
### SnapToGrid(Double)
|
|
|
|
Snaps the given value down to the nearest multiple of the grid cell size.
|
|
|
|
```csharp
|
|
public double SnapToGrid(double value);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`value` [Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double): The value to be snapped to the grid.
|
|
|
|
**Returns**
|
|
|
|
[Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double): The largest multiple of the grid cell size less than or equal to the value.
|
|
|
|
### UnlockSelection()
|
|
|
|
Unlocks the position of the [NodifyEditor.SelectedContainers](Nodify_NodifyEditor#selectedcontainers).
|
|
|
|
```csharp
|
|
public void UnlockSelection();
|
|
```
|
|
|
|
### UnselectAllConnections()
|
|
|
|
Unselect all [NodifyEditor.Connections](Nodify_NodifyEditor#connections).
|
|
|
|
```csharp
|
|
public void UnselectAllConnections();
|
|
```
|
|
|
|
### UnselectArea(Rect, Boolean)
|
|
|
|
Unselect the [ItemContainer](Nodify_ItemContainer)s in the specified area.
|
|
|
|
```csharp
|
|
public void UnselectArea(Rect area, bool fit = false);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`area` [Rect](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Rect): The area to look for [ItemContainer](Nodify_ItemContainer)s.
|
|
|
|
`fit` [Boolean](https://docs.microsoft.com/en-us/dotnet/api/System.Boolean): True to check if the area contains the [ItemContainer](Nodify_ItemContainer). False to check if area intersects the [ItemContainer](Nodify_ItemContainer).
|
|
|
|
### UpdateCuttingLine(Vector)
|
|
|
|
Updates the current cutting line position and the style for the intersecting elements if [NodifyEditor.EnableCuttingLinePreview](Nodify_NodifyEditor#enablecuttinglinepreview) is true.
|
|
|
|
```csharp
|
|
public void UpdateCuttingLine(Vector amount);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`amount` [Vector](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Vector): The amount to adjust the cutting line's endpoint.
|
|
|
|
### UpdateCuttingLine(Point)
|
|
|
|
Updates the current cutting line position and the style for the intersecting elements if [NodifyEditor.EnableCuttingLinePreview](Nodify_NodifyEditor#enablecuttinglinepreview) is true.
|
|
|
|
```csharp
|
|
public void UpdateCuttingLine(Point location);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`location` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point): The location of the cutting line's endpoint.
|
|
|
|
### UpdateDragging(Vector)
|
|
|
|
Updates the position of the items being dragged by a specified offset.
|
|
|
|
```csharp
|
|
public void UpdateDragging(Vector amount);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`amount` [Vector](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Vector): The vector by which to adjust the position of the dragged items.
|
|
|
|
### UpdatePanning(Vector)
|
|
|
|
Pans the viewport by the specified amount.
|
|
|
|
```csharp
|
|
public void UpdatePanning(Vector amount);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`amount` [Vector](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Vector): The amount to pan the viewport.
|
|
|
|
### UpdatePushedArea(Vector)
|
|
|
|
Updates the pushed area based on the specified amount taking the [NodifyEditor.PushedAreaOrientation](Nodify_NodifyEditor#pushedareaorientation) into account.
|
|
|
|
```csharp
|
|
public void UpdatePushedArea(Vector amount);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`amount` [Vector](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Vector): The amount to adjust the pushed area by.
|
|
|
|
### UpdateSelection(Vector)
|
|
|
|
Expands or modifies the selection area by the specified amount.
|
|
|
|
```csharp
|
|
public void UpdateSelection(Vector amount);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`amount` [Vector](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Vector): Rrepresents the change to apply to the selection area.
|
|
|
|
### UpdateSelection(Point)
|
|
|
|
Expands or modifies the selection area to the specified location.
|
|
|
|
```csharp
|
|
public void UpdateSelection(Point location);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`location` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point): The point, in graph space coordinates, to extend or adjust the selection area to.
|
|
|
|
### ZoomAtPosition(Double, Point)
|
|
|
|
Zoom at the specified location in graph space coordinates.
|
|
|
|
```csharp
|
|
public void ZoomAtPosition(double zoom, Point location);
|
|
```
|
|
|
|
**Parameters**
|
|
|
|
`zoom` [Double](https://docs.microsoft.com/en-us/dotnet/api/System.Double): The zoom factor to apply. A value greater than 1 zooms in, while a value between 0 and 1 zooms out.
|
|
|
|
`location` [Point](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.Point): The point in graph space coordinates where the zoom should be centered.
|
|
|
|
### ZoomIn()
|
|
|
|
Zoom in at the viewport's center.
|
|
|
|
```csharp
|
|
public void ZoomIn();
|
|
```
|
|
|
|
### ZoomOut()
|
|
|
|
Zoom out at the viewport's center.
|
|
|
|
```csharp
|
|
public void ZoomOut();
|
|
```
|
|
|
|
## Events
|
|
|
|
### ActiveNavigationLayerChanged
|
|
|
|
```csharp
|
|
public virtual event Action<KeyboardNavigationLayerId> ActiveNavigationLayerChanged;
|
|
```
|
|
|
|
**Event Type**
|
|
|
|
[Action\<KeyboardNavigationLayerId\>](https://docs.microsoft.com/en-us/dotnet/api/System.Action-1)
|
|
|
|
### ItemsMoved
|
|
|
|
Occurs when items are moved within the editor (see Nodify.NodifyEditor.BeginDragging, Nodify.NodifyEditor.BeginPushingItems(System.Windows.Point,System.Windows.Controls.Orientation)).
|
|
|
|
```csharp
|
|
public event ItemsMovedEventHandler ItemsMoved;
|
|
```
|
|
|
|
**Event Type**
|
|
|
|
[ItemsMovedEventHandler](Nodify_Events_ItemsMovedEventHandler)
|
|
|
|
### ViewportUpdated
|
|
|
|
Occurs whenever the viewport updates.
|
|
|
|
```csharp
|
|
public event RoutedEventHandler ViewportUpdated;
|
|
```
|
|
|
|
**Event Type**
|
|
|
|
[RoutedEventHandler](https://docs.microsoft.com/en-us/dotnet/api/System.Windows.RoutedEventHandler)
|
|
|