├── .gitattributes ├── .gitignore ├── .nuget └── NuGet.Config ├── .settings └── launch.json ├── .vs └── config │ └── applicationhost.config ├── Documents ├── AIV.cs ├── CHANGELOG.txt ├── Licenses │ ├── License.Extended WPF Toolkit.txt │ ├── License.Graph# - GraphX.txt │ ├── License.MediaFIles.txt │ ├── License.ModernUI.txt │ ├── License.NodeXL.txt │ ├── License.Quikgraph.txt │ ├── License.RelativeAnimatingContentControl.txt │ ├── License.WPFExtensions.txt │ ├── License.YAXLib.txt │ └── License.icons.txt └── TODO.txt ├── Examples ├── ShowcaseApp.WPF │ ├── App.config │ ├── App.xaml │ ├── App.xaml.cs │ ├── Assets │ │ ├── ModernUI.Snowflakes.xaml │ │ ├── SplashScreen.png │ │ ├── background.snowflakes.jpg │ │ ├── blackCircle.png │ │ ├── blackCircleFilled.png │ │ ├── board_hd.png │ │ ├── brick_16.png │ │ ├── carpet.png │ │ ├── circle_blue.png │ │ ├── circle_green.png │ │ ├── circle_red.png │ │ ├── dice.png │ │ ├── female.png │ │ ├── grid_paper.png │ │ ├── hand_comp.png │ │ ├── hand_comp2.png │ │ ├── hand_comp3.png │ │ ├── male.png │ │ ├── tr_grren.png │ │ └── tr_red.png │ ├── Content │ │ ├── SettingsAppearance.xaml │ │ ├── SettingsAppearance.xaml.cs │ │ └── SettingsAppearanceViewModel.cs │ ├── Controls │ │ ├── MiniContentPage.xaml │ │ ├── MiniContentPage.xaml.cs │ │ ├── MiniXamlPage.xaml │ │ ├── MiniXamlPage.xaml.cs │ │ ├── MiniXamlTemplatePage.xaml │ │ ├── MiniXamlTemplatePage.xaml.cs │ │ ├── SpecialWindowControl.xaml │ │ └── SpecialWindowControl.xaml.cs │ ├── ExampleModels │ │ ├── DataEdge.cs │ │ ├── DataVertex.cs │ │ ├── ExampleExternalEdgeRoutingAlgorithm.cs │ │ ├── ExampleExternalLayoutAlgorithm.cs │ │ ├── ExampleExternalOverlapRemovalAlgorithm.cs │ │ ├── ExampleMoveAnimation.cs │ │ ├── Filters │ │ │ └── BlueVertexFilter.cs │ │ ├── GraphAreaExample.cs │ │ ├── GraphExample.cs │ │ ├── LogicCoreExample.cs │ │ └── OrthEr.cs │ ├── External │ │ └── WindowGlow │ │ │ ├── GlowManager.cs │ │ │ ├── GlowWindow.cs │ │ │ └── Win32.cs │ ├── FileSerialization │ │ ├── FileServiceProviderWPF.cs │ │ ├── YAXPointArraySerializer.cs │ │ └── YAXPointSerializer.cs │ ├── Layouts │ │ ├── FR_layout.xml │ │ └── KK_Layout.xml │ ├── MainWindow.xaml │ ├── MainWindow.xaml.cs │ ├── Models │ │ ├── ColorModel.cs │ │ ├── DataItem.cs │ │ ├── EditorObjectManager.cs │ │ ├── EditorOperationMode.cs │ │ ├── ImageLoader.cs │ │ ├── LinkCommands.cs │ │ ├── MiniSpecialType.cs │ │ ├── ShadowChrome.cs │ │ ├── ShowcaseHelper.cs │ │ ├── SimpleCommand.cs │ │ ├── ThemedDataStorage.cs │ │ ├── VCTemplateBehaviour.cs │ │ └── ValueToImageConverter.cs │ ├── Pages │ │ ├── Debug │ │ │ ├── DebugGraph.xaml │ │ │ └── DebugGraph.xaml.cs │ │ ├── DynamicGraph.xaml │ │ ├── DynamicGraph.xaml.cs │ │ ├── EdgeRoutingGraph.xaml │ │ ├── EdgeRoutingGraph.xaml.cs │ │ ├── EditorGraph.xaml │ │ ├── EditorGraph.xaml.cs │ │ ├── FeatureLists │ │ │ ├── FeaturesPageData.xaml │ │ │ ├── FeaturesPageData.xaml.cs │ │ │ ├── FeaturesPageEdges.xaml │ │ │ ├── FeaturesPageEdges.xaml.cs │ │ │ ├── FeaturesPageLayouts.xaml │ │ │ ├── FeaturesPageLayouts.xaml.cs │ │ │ ├── FeaturesPageTemplates.xaml │ │ │ └── FeaturesPageTemplates.xaml.cs │ │ ├── GeneralGraph.xaml │ │ ├── GeneralGraph.xaml.cs │ │ ├── Introduction.xaml │ │ ├── Introduction.xaml.cs │ │ ├── Mini │ │ │ ├── DataFiltering.xaml │ │ │ ├── DataFiltering.xaml.cs │ │ │ ├── EdgesParallel.xaml │ │ │ ├── EdgesParallel.xaml.cs │ │ │ ├── LayoutGrouped.xaml │ │ │ ├── LayoutGrouped.xaml.cs │ │ │ ├── LayoutVCP.xaml │ │ │ └── LayoutVCP.xaml.cs │ │ ├── NNGraph.xaml │ │ ├── NNGraph.xaml.cs │ │ ├── Settings.xaml │ │ ├── Settings.xaml.cs │ │ ├── ThemedGraph.xaml │ │ └── ThemedGraph.xaml.cs │ ├── Properties │ │ ├── Annotations.cs │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ ├── Resources.resx │ │ ├── Settings.Designer.cs │ │ └── Settings.settings │ ├── ShowcaseApp.WPF.csproj │ ├── ShowcaseApp.WPF.csproj.DotSettings │ ├── Templates │ │ ├── Accordion.xaml │ │ ├── Debug │ │ │ └── TestTemplates.xaml │ │ ├── DynamicGraphXTemplates.xaml │ │ ├── ERGraphXTemplates.xaml │ │ ├── EditorGraphXTemplates.xaml │ │ ├── ExpanderTemplates.xaml │ │ ├── GeneralTemplate.xaml │ │ ├── Mini │ │ │ ├── CommonMiniTemplate.xaml │ │ │ ├── LayoutDataFiltering.xaml │ │ │ ├── LayoutGroupedTemplate.xaml │ │ │ └── LayoutVCPTemplate.xaml │ │ ├── MiniFeatures.xaml │ │ ├── ThemedGraphXTemplates.xaml │ │ └── TransparentTooltips.xaml │ ├── Themes │ │ └── Generic.xaml │ ├── app.ico │ ├── packages.config │ └── readme.txt ├── SimpleGraph.DotNetCore │ ├── App.xaml │ ├── App.xaml.cs │ ├── AssemblyInfo.cs │ └── SimpleGraph.DotNetCore.csproj ├── SimpleGraph │ ├── .gitignore │ ├── App.config │ ├── App.xaml │ ├── App.xaml.cs │ ├── Images │ │ ├── dice.png │ │ └── update.png │ ├── MainWindow.xaml │ ├── MainWindow.xaml.cs │ ├── Models │ │ ├── DataEdge.cs │ │ ├── DataVertex.cs │ │ ├── GXLogicCoreExample.cs │ │ ├── GraphAreaExample.cs │ │ └── GraphExample.cs │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ ├── Resources.resx │ │ ├── Settings.Designer.cs │ │ └── Settings.settings │ ├── SimpleGraph.csproj │ ├── packages.config │ └── readme.txt ├── UAP.SimpleGraph │ ├── App.xaml │ ├── App.xaml.cs │ ├── Assets │ │ ├── 100.png │ │ ├── 150.png │ │ ├── 300.png │ │ ├── 44.png │ │ ├── 50.png │ │ ├── 88.png │ │ ├── Logo.png │ │ ├── Logo.scale-100.png │ │ ├── Logo.scale-200.png │ │ ├── MidLogo.png │ │ ├── SmallLogo.png │ │ ├── SplashScreen.png │ │ ├── SplashScreen.scale-100.png │ │ ├── SplashScreen.scale-200.png │ │ ├── StoreLogo.png │ │ ├── newlogo_big.png │ │ ├── play.png │ │ ├── refresh.png │ │ ├── tr_grren.png │ │ └── tr_red.png │ ├── Common │ │ ├── StandardStyles.xaml │ │ ├── templates.xaml │ │ └── templates2.xaml │ ├── MainPage.xaml │ ├── MainPage.xaml.cs │ ├── MainPageDebug.xaml │ ├── MainPageDebug.xaml.cs │ ├── Models │ │ ├── CurvedEr.cs │ │ ├── CurvedErParameters.cs │ │ ├── DataEdge.cs │ │ ├── DataVertex.cs │ │ ├── DebugItems.cs │ │ ├── GXLogicCoreExample.cs │ │ ├── GraphAreaExample.cs │ │ ├── GraphExample.cs │ │ └── MouseOverScaleAnimation.cs │ ├── Package.appxmanifest │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ └── Default.rd.xml │ ├── UAP.SimpleGraph.csproj │ ├── UAP.SimpleGraph.nuget.props │ ├── UAP.SimpleGraph.nuget.targets │ └── project.lock.json ├── WindowsDesktop_VB.NET_WinForms_Example │ ├── App.config │ ├── Form1.Designer.vb │ ├── Form1.resx │ ├── Form1.vb │ ├── Models │ │ ├── DataEdge.vb │ │ ├── DataVertex.vb │ │ ├── GraphAreaExample.vb │ │ └── GraphExample.vb │ ├── My Project │ │ ├── Application.Designer.vb │ │ ├── Application.myapp │ │ ├── AssemblyInfo.vb │ │ ├── Resources.Designer.vb │ │ ├── Resources.resx │ │ ├── Settings.Designer.vb │ │ └── Settings.settings │ ├── Templates │ │ └── template.xaml │ ├── WindowsDesktop_VB.NET_WinForms_Example.vbproj │ └── packages.config └── WindowsFormsProject │ ├── .gitignore │ ├── Form1.Designer.cs │ ├── Form1.cs │ ├── Form1.resx │ ├── Images │ ├── dice.png │ └── update.png │ ├── Models │ ├── DataEdge.cs │ ├── DataVertex.cs │ ├── GraphAreaExample.cs │ └── GraphExample.cs │ ├── Program.cs │ ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ └── Settings.settings │ ├── Templates │ └── template.xaml │ ├── WindowsFormsProject.csproj │ ├── app.config │ └── packages.config ├── ExternalDlls ├── FirstFloor.ModernUI.dll └── Microsoft.Windows.Shell.dll ├── GraphX for .NET.sln ├── GraphX.Controls ├── .gitignore ├── Animations │ ├── DeleteFadeAnimation.cs │ ├── DeleteShrinkAnimation.cs │ ├── Enums │ │ ├── DeleteAnimation.cs │ │ ├── MouseOverAnimation.cs │ │ └── MoveAnimation.cs │ ├── Interfaces │ │ ├── IBidirectionalControlAnimation.cs │ │ └── IOneWayControlAnimation.cs │ ├── MouseOverScaleAnimation.cs │ ├── MoveAnimationBase.cs │ ├── MoveFadeAnimation.cs │ └── MoveSimpleAnimation.cs ├── Behaviours │ ├── DragBehaviour.cs │ └── HighlightBehaviour.cs ├── Controls │ ├── EdgeControl.cs │ ├── EdgeControlBase.cs │ ├── EdgeLabels │ │ ├── AttachableEdgeLabelControl.cs │ │ └── EdgeLabelControl.cs │ ├── EdgePointers │ │ └── DefaultEdgePointer.cs │ ├── GraphArea.cs │ ├── GraphAreaBase.cs │ ├── Misc │ │ ├── ControlDrawOrder.cs │ │ ├── EdgeDashStyle.cs │ │ ├── IEdgeLabelControl.cs │ │ ├── IEdgePointer.cs │ │ ├── IGraphArea.cs │ │ ├── IGraphAreaBase.cs │ │ ├── IGraphControl.cs │ │ ├── IPositionChangeNotify.cs │ │ ├── ITrackableContent.cs │ │ ├── IVertexConnectionPoint.cs │ │ ├── IVertexLabelControl.cs │ │ ├── IZoomControl.cs │ │ └── LogicCoreChangedAction.cs │ ├── VertexConnectionPoints │ │ └── StaticVertexConnectionPoint.cs │ ├── VertexControl.cs │ ├── VertexControlBase.cs │ ├── VertexLabels │ │ ├── AttachableVertexLabelControl.cs │ │ └── VertexLabelControl.cs │ └── ZoomControl │ │ ├── Converters │ │ ├── DoubleToLog10Converter.cs │ │ ├── EqualityToBooleanConverter.cs │ │ ├── GeometryToPathGeometryConverter.cs │ │ ├── RoundedValueConverter.cs │ │ └── VisibilityToBoolConverter.cs │ │ ├── Helpers │ │ ├── DoubleHelper.cs │ │ ├── PointHelper.cs │ │ └── VisualTreeHelperEx.cs │ │ ├── SupportClasses │ │ ├── AreaSelectedEventArgs.cs │ │ ├── AreaSelectedEventHandler.cs │ │ ├── ContentSizeChangedHandler.cs │ │ ├── MouseWheelZoomingMode.cs │ │ ├── ZoomControlModes.cs │ │ └── ZoomViewModifierMode.cs │ │ ├── ViewFinderDisplay.cs │ │ ├── ZoomContentPresenter.cs │ │ └── ZoomControl.cs ├── CustomHelper.cs ├── DesignerExampleData │ ├── EdgeDataExample.cs │ └── VertexDataExample.cs ├── ExceptionExtensions.cs ├── GeometryHelper.cs ├── GraphX.WPF.Controls.csproj ├── GraphX.WPF.Controls.csproj.DotSettings ├── GraphX.WPF.Controls.nuspec ├── Images │ └── help_black.png ├── MathHelper.cs ├── Models │ ├── AnimationFactory.cs │ ├── ContentSizeChangedEventHandler.cs │ ├── ControlClickedEventArgs.cs │ ├── ControlEventArgs.cs │ ├── DefaultLabelFactory.cs │ ├── EdgeEventOptions.cs │ ├── EdgeSelectedEventArgs.cs │ ├── EdgeSelectedEventHandler.cs │ ├── GraphControlFactory.cs │ ├── Interfaces │ │ ├── IAttachableControl.cs │ │ ├── IGraphControlFactory.cs │ │ └── ILabelFactory.cs │ ├── PropertyChangeNotifier.cs │ ├── RemoveControlEventHandler.cs │ ├── StateStorage.cs │ ├── VertexEventOptions.cs │ ├── VertexMovedEventArgs.cs │ ├── VertexPositionChangedEH.cs │ ├── VertexPositionEventArgs.cs │ ├── VertexSelectedEventArgs.cs │ └── VertexSelectedEventHandler.cs ├── PrintHelper.cs ├── Properties │ └── AssemblyInfo.cs ├── Themes │ └── Generic.xaml ├── TypeExtensions.cs └── packages.config ├── GraphX.Core.Controls ├── AssemblyInfo.cs └── GraphX.Core.Controls.csproj ├── GraphX.METRO.Controls ├── Controls │ └── ZoomControl │ │ ├── Converters │ │ ├── DoubleToLog10Converter.cs │ │ ├── EqualityToBooleanConverter.cs │ │ ├── RoundedValueConverter.cs │ │ └── VisibilityToBoolConverter.cs │ │ ├── Helpers │ │ ├── DoubleHelper.cs │ │ ├── PointHelper.cs │ │ └── VisualTreeHelperEx.cs │ │ ├── SupportClasses │ │ ├── AreaSelectedEventArgs.cs │ │ ├── AreaSelectedEventHandler.cs │ │ ├── ContentSizeChangedHandler.cs │ │ ├── MouseWheelZoomingMode.cs │ │ ├── ZoomControlModes.cs │ │ └── ZoomViewModifierMode.cs │ │ ├── ZoomContentPresenter.cs │ │ └── ZoomControl.cs ├── DesignerExampleData │ ├── EdgeDataExample.cs │ └── VertexDataExample.cs ├── DpExtensions.cs ├── GraphX.METRO.Controls.csproj ├── GraphX.METRO.Controls.csproj.DotSettings ├── Images │ ├── cross-icon.png │ ├── help_black.png │ ├── round1.png │ └── round2.png ├── METRO.SimpleGraph_TemporaryKey.pfx ├── MathHelper.cs.bak ├── Models │ ├── AnimationHelper.cs │ ├── DelegateCommand.cs │ ├── DispatcherHelper.cs │ ├── EdgeSelectedEventArgs.cs │ ├── FileServiceProviderMETRO.cs │ ├── ModifierKeys.cs │ ├── MouseButtonEventArgs.cs │ ├── VertexMovedEventArgs.cs │ ├── VertexSelectedEventArgs.cs │ └── XamlTypes │ │ ├── ViewModelBase.cs │ │ ├── ViewModelXamlMember.cs │ │ ├── ViewModelXamlMetadataProvider.cs │ │ ├── ViewModelXamlType.cs │ │ ├── XamlSystemType.cs │ │ └── XamlTypeProvider.cs ├── PrintHelper.cs ├── Properties │ └── AssemblyInfo.cs ├── Themes │ └── Generic.xaml ├── packages.config └── port.txt ├── GraphX.Standard.Common ├── Enums │ ├── EdgeRoutingAlgorithmTypeEnum.cs │ ├── EdgesType.cs │ ├── EventType.cs │ ├── GraphControlType.cs │ ├── HighlightStrategy.cs │ ├── ImageType.cs │ ├── LayoutAlgorithmTypeEnum.cs │ ├── OverlapRemovalAlgorithmTypeEnum.cs │ ├── ProcessingOptionEnum.cs │ └── VertexShape.cs ├── Exceptions │ ├── GX_GeneralException.cs │ ├── GX_InvalidDataException.cs │ ├── GX_ObjectNotFoundException.cs │ ├── GX_ObsoleteException.cs │ └── GX_SerializationException.cs ├── GraphX.Standard.Common.csproj ├── Helpers │ ├── CommonExtensions.cs │ └── GraphSharpExtensions.cs ├── Interfaces │ ├── IAlgorithmFactory.cs │ ├── IAlgorithmParameters.cs │ ├── IAlgorithmStorage.cs │ ├── ICloneable.cs │ ├── IEdgeRoutingParameters.cs │ ├── IExternalEdgeRouting.cs │ ├── IExternalLayout.cs │ ├── IExternalOverlapRemoval.cs │ ├── IGXLogicCore.cs │ ├── IGraphFIlter.cs │ ├── IGraphXEdge.cs │ ├── IGraphXVertex.cs │ ├── IIdentifiableGraphDataObject.cs │ ├── ILayoutAlgorithm.cs │ ├── ILayoutEdgeRouting.cs │ ├── ILayoutParameters.cs │ ├── IOverlapRemovalAlgorithm.cs │ ├── IOverlapRemovalParameters.cs │ ├── IRoutingInfo.cs │ └── IWeightedEdge.cs ├── Measure │ ├── Point.cs │ ├── Rect.cs │ ├── Size.cs │ ├── Thickness.cs │ └── Vector.cs ├── Models │ ├── EdgeBase.cs │ ├── EdgeRoutingVisualData.cs │ ├── GraphSerializationData.cs │ ├── GraphState.cs │ ├── Semaphore │ │ ├── BAutoResetEvent.cs │ │ ├── BManualResetEvent.cs │ │ ├── BWaitHandle.cs │ │ └── Semaphore.cs │ ├── VertexBase.cs │ └── WeightedEdge.cs └── signature.snk ├── GraphX.Standard.Logic ├── Algorithms │ ├── AlgorithmBase.cs │ ├── EdgeRouting │ │ ├── EdgeBundling │ │ │ ├── BundleEdgeRouting.cs │ │ │ ├── BundleEdgeRoutingParameters.cs │ │ │ └── VectorTools.cs │ │ ├── EdgeRoutingAlgorithmBase.cs │ │ ├── EdgeRoutingParameters.cs │ │ ├── PathFinderER │ │ │ ├── IPathFinder.cs │ │ │ ├── MatrixItem.cs │ │ │ ├── PathFinder.cs │ │ │ ├── PathFinderEdgeRouting.cs │ │ │ ├── PathFinderEdgeRoutingParameters.cs │ │ │ └── PriorityQueueB.cs │ │ └── SimpleER │ │ │ ├── SimpleERParameters.cs │ │ │ └── SimpleEdgeRouting.cs │ ├── GraphHideHelper.cs │ ├── HierarchicalGraph.cs │ ├── IAlgorithm.cs │ ├── IHierarchicalBidirectionalGraph.cs │ ├── ISoftMutableGraph.cs │ ├── LayeredTopologicalSortAlgorithm.cs │ ├── LayoutAlgorithms │ │ ├── Circular │ │ │ ├── CircularLayoutAlgorithm.cs │ │ │ └── CircularLayoutParameters.cs │ │ ├── FDP │ │ │ ├── BoundedFRLayoutParameters.cs │ │ │ ├── Compound │ │ │ │ ├── CompoundFDPLayoutAlgorithm.Data.cs │ │ │ │ ├── CompoundFDPLayoutAlgorithm.Init.cs │ │ │ │ ├── CompoundFDPLayoutAlgorithm.cs │ │ │ │ ├── CompoundFDPLayoutParameters.cs │ │ │ │ ├── CompoundGraph.cs │ │ │ │ ├── CompoundLayoutContext.cs │ │ │ │ ├── CompoundLayoutIterationEventArgs.cs │ │ │ │ ├── CompoundVertexInnerLayoutType.cs │ │ │ │ ├── ICompoundGraph.cs │ │ │ │ ├── ICompoundLayoutAlgorithm.cs │ │ │ │ ├── ICompoundLayoutContext.cs │ │ │ │ ├── ICompoundLayoutIterationEventArgs.cs │ │ │ │ ├── ILayoutContext.cs │ │ │ │ ├── IMutableCompoundGraph.cs │ │ │ │ ├── LayoutContext.cs │ │ │ │ ├── LayoutMode.cs │ │ │ │ ├── TestingCompoundLayoutIterationEventArgs.cs │ │ │ │ └── TestingCompoundVertexInfo.cs │ │ │ ├── FRCoolingFunction.cs │ │ │ ├── FRLayoutAlgorithm.cs │ │ │ ├── FRLayoutParametersBase.cs │ │ │ ├── FreeFRLayoutParameters.cs │ │ │ ├── ISOMLayoutAlgorithm.cs │ │ │ ├── ISOMLayoutParameters.cs │ │ │ ├── KKLayoutAlgorithm.cs │ │ │ ├── KKLayoutParameters.cs │ │ │ ├── LinLogLayoutAlgorithm.QuadTree.cs │ │ │ ├── LinLogLayoutAlgorithm.cs │ │ │ └── LinLogLayoutParameters.cs │ │ ├── Grouped │ │ │ ├── GroupingLayoutAlgorithm.cs │ │ │ └── GroupingLayoutAlgorithmParameters.cs │ │ ├── Hierarchical │ │ │ ├── EfficientSugiyamaAlgorithm.BuildSparseNormalizedGraph.cs │ │ │ ├── EfficientSugiyamaAlgorithm.DoCrossingMinimizations.cs │ │ │ ├── EfficientSugiyamaAlgorithm.DoPreparing.cs │ │ │ ├── EfficientSugiyamaLayoutAlgorithm.AlternatingLayer.cs │ │ │ ├── EfficientSugiyamaLayoutAlgorithm.Data.cs │ │ │ ├── EfficientSugiyamaLayoutAlgorithm.HorizontalAssignment.cs │ │ │ ├── EfficientSugiyamaLayoutAlgorithm.SegmentContainer.cs │ │ │ ├── EfficientSugiyamaLayoutAlgorithm.cs │ │ │ ├── EfficientSugiyamaLayoutParameters.cs │ │ │ ├── SugiyamaEdgeRoutings.cs │ │ │ ├── SugiyamaLayoutAlgorithm.Enums.cs │ │ │ ├── SugiyamaLayoutAlgorithm.SugiEdge.cs │ │ │ ├── SugiyamaLayoutAlgorithm.SugiVertex.cs │ │ │ ├── SugiyamaLayoutAlgorithm.VertexLayer.cs │ │ │ ├── SugiyamaLayoutAlgorithm.VertexLayerCollection.cs │ │ │ ├── SugiyamaLayoutAlgorithm.cs │ │ │ └── SugiyamaLayoutParameters.cs │ │ ├── ILayoutInfoIterationEventArgs.cs │ │ ├── ILayoutIterationEventArgs.cs │ │ ├── IParameterizedLayoutAlgorithm.cs │ │ ├── LayoutAlgorithmBase.cs │ │ ├── LayoutDirection.cs │ │ ├── LayoutIterationEventArgs.cs │ │ ├── LayoutParametersBase.cs │ │ ├── LayoutUtil.cs │ │ ├── ParameterizedLayoutAlgorithmBase.cs │ │ ├── Random │ │ │ ├── RandomLayoutAlgorithm.cs │ │ │ └── RandomLayoutAlgorithmParams.cs │ │ └── Tree │ │ │ ├── BalloonTreeLayoutAlgorithm.cs │ │ │ ├── BalloonTreeLayoutParameters.cs │ │ │ ├── SimpleTreeLayoutAlgorithm.Data.cs │ │ │ ├── SimpleTreeLayoutAlgorithm.cs │ │ │ ├── SimpleTreeLayoutParameters.cs │ │ │ └── SpanningTreeGeneration.cs │ ├── OverlapRemoval │ │ ├── FSAAlgorithm.cs │ │ ├── IOverlapRemovalAlgorithmFactory.cs │ │ ├── IOverlapRemovalContext.cs │ │ ├── OneWayFSAAlgorithm.cs │ │ ├── OneWayFSAParameters.cs │ │ ├── OverlapRemovalAlgorithmBase.cs │ │ ├── OverlapRemovalContext.cs │ │ ├── OverlapRemovalHelper.cs │ │ ├── OverlapRemovalParameters.cs │ │ ├── RectangleWrapper.cs │ │ └── StandardOverlapRemovalAlgorithmFactory.cs │ ├── SoftMutableBidirectionalGraph.cs │ ├── SoftMutableHierarchicalGraph.cs │ ├── TypedEdge.cs │ └── WrappedVertex.cs ├── GraphX.Standard.Logic.csproj ├── Helpers │ ├── ReflectionHelper.cs │ └── ThreadingHelper.cs └── Models │ ├── AlgorithmFactory.cs │ ├── AlgorithmStorage.cs │ ├── GXLogicCore.cs │ └── GXLogicCore_Calculation.cs ├── GraphX.UAP.Controls ├── Controls │ └── ZoomControl │ │ ├── Converters │ │ ├── DoubleToLog10Converter.cs │ │ ├── EqualityToBooleanConverter.cs │ │ ├── RoundedValueConverter.cs │ │ └── VisibilityToBoolConverter.cs │ │ ├── Helpers │ │ ├── DoubleHelper.cs │ │ ├── PointHelper.cs │ │ └── VisualTreeHelperEx.cs │ │ ├── SupportClasses │ │ ├── AreaSelectedEventArgs.cs │ │ ├── AreaSelectedEventHandler.cs │ │ ├── ContentSizeChangedHandler.cs │ │ ├── MouseWheelZoomingMode.cs │ │ ├── ZoomControlModes.cs │ │ └── ZoomViewModifierMode.cs │ │ ├── ZoomContentPresenter.cs │ │ └── ZoomControl.cs ├── DesignerExampleData │ ├── EdgeDataExample.cs │ └── VertexDataExample.cs ├── DpExtensions.cs ├── GraphX.UAP.Controls.csproj ├── Images │ ├── cross-icon.png │ ├── help_black.png │ ├── round1.png │ └── round2.png ├── Models │ ├── AnimationHelper.cs │ ├── DelegateCommand.cs │ ├── DispatcherHelper.cs │ ├── EdgeSelectedEventArgs.cs │ ├── FileServiceProviderMETRO.cs │ ├── ModifierKeys.cs │ ├── MouseButtonEventArgs.cs │ ├── VertexMovedEventArgs.cs │ ├── VertexSelectedEventArgs.cs │ └── XamlTypes │ │ ├── ViewModelBase.cs │ │ ├── ViewModelXamlMember.cs │ │ ├── ViewModelXamlMetadataProvider.cs │ │ ├── ViewModelXamlType.cs │ │ ├── XamlSystemType.cs │ │ └── XamlTypeProvider.cs ├── PrintHelper.cs ├── Properties │ ├── AssemblyInfo.cs │ └── GraphX.UAP.Controls.rd.xml └── Themes │ └── Generic.xaml ├── LICENSE ├── README.md └── info.md /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | *.sln merge=union 7 | *.csproj merge=union 8 | *.vbproj merge=union 9 | *.fsproj merge=union 10 | *.dbproj merge=union 11 | 12 | # Resources 13 | *.png binary 14 | *.jpg binary 15 | *.dll binary 16 | *.exe binary 17 | *.gif binary 18 | *.ico binary 19 | 20 | # Standard to msysgit 21 | *.doc diff=astextplain 22 | *.DOC diff=astextplain 23 | *.docx diff=astextplain 24 | *.DOCX diff=astextplain 25 | *.dot diff=astextplain 26 | *.DOT diff=astextplain 27 | *.pdf diff=astextplain 28 | *.PDF diff=astextplain 29 | *.rtf diff=astextplain 30 | *.RTF diff=astextplain 31 | -------------------------------------------------------------------------------- /.nuget/NuGet.Config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.settings/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.1.0", 3 | // List of configurations. Add new configurations or edit existing ones. 4 | // ONLY "node" and "mono" are supported, change "type" to switch. 5 | "configurations": [ 6 | { 7 | // Name of configuration; appears in the launch configuration drop down menu. 8 | "name": "Launch app.js", 9 | // Type of configuration. Possible values: "node", "mono". 10 | "type": "node", 11 | // Workspace relative or absolute path to the program. 12 | "program": "app.js", 13 | // Automatically stop program after launch. 14 | "stopOnEntry": true, 15 | // Command line arguments passed to the program. 16 | "args": [], 17 | // Workspace relative or absolute path to the working directory of the program being debugged. Default is the current workspace. 18 | "cwd": ".", 19 | // Workspace relative or absolute path to the runtime executable to be used. Default is the runtime executable on the PATH. 20 | "runtimeExecutable": null, 21 | // Environment variables passed to the program. 22 | "env": { } 23 | }, 24 | { 25 | "name": "Attach", 26 | "type": "node", 27 | // TCP/IP address. Default is "localhost". 28 | "address": "localhost", 29 | // Port to attach to. 30 | "port": 5858 31 | } 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /Documents/AIV.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Documents/AIV.cs -------------------------------------------------------------------------------- /Documents/Licenses/License.MediaFIles.txt: -------------------------------------------------------------------------------- 1 | http://creativecommons.org/licenses/by/3.0/ -------------------------------------------------------------------------------- /Documents/Licenses/License.YAXLib.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | Copyright (c) 2009 - 2011 Sina Iravanian (sina@sinairv.com) 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 5 | 6 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 7 | 8 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /Documents/TODO.txt: -------------------------------------------------------------------------------- 1 | TODO 2 | 3. Detect bidirectional edge and correctly display it w/o parallelization 3 | 4 | Add edge labels - labels on path 5 | http://www.codeproject.com/Articles/30090/Text-On-A-Path-in-WPF 6 | 7 | http://en.wikipedia.org/wiki/Automatic_label_placement 8 | 9 | 10 | NOTES 11 | 1. If custom object 1st time position is incorrect - CHECK if it has Arrange() specified in LayoutUpdated event! 12 | 13 | 14 | perf 15 | http://blogs.msdn.com/b/llobo/archive/2009/11/10/new-wpf-features-cached-composition.aspx?wa=wsignin1.0 -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/App.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/App.xaml: -------------------------------------------------------------------------------- 1 |  5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Configuration; 4 | using System.Data; 5 | using System.Linq; 6 | using System.Windows; 7 | 8 | namespace ShowcaseApp.WPF 9 | { 10 | /// 11 | /// Interaction logic for App.xaml 12 | /// 13 | public partial class App : Application 14 | { 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Assets/ModernUI.Snowflakes.xaml: -------------------------------------------------------------------------------- 1 |  4 | 5 | 6 | 7 | 8 | 9 | #0082AD 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Assets/SplashScreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/SplashScreen.png -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Assets/background.snowflakes.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/background.snowflakes.jpg -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Assets/blackCircle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/blackCircle.png -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Assets/blackCircleFilled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/blackCircleFilled.png -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Assets/board_hd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/board_hd.png -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Assets/brick_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/brick_16.png -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Assets/carpet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/carpet.png -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Assets/circle_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/circle_blue.png -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Assets/circle_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/circle_green.png -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Assets/circle_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/circle_red.png -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Assets/dice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/dice.png -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Assets/female.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/female.png -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Assets/grid_paper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/grid_paper.png -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Assets/hand_comp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/hand_comp.png -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Assets/hand_comp2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/hand_comp2.png -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Assets/hand_comp3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/hand_comp3.png -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Assets/male.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/male.png -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Assets/tr_grren.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/tr_grren.png -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Assets/tr_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/panthernet/GraphX/13cd49cc6d5cc8ece0b47c18dde1893b0a3dd676/Examples/ShowcaseApp.WPF/Assets/tr_red.png -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Content/SettingsAppearance.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Controls; 2 | 3 | namespace ShowcaseApp.WPF.Content 4 | { 5 | /// 6 | /// Interaction logic for SettingsAppearance.xaml 7 | /// 8 | public partial class SettingsAppearance : UserControl 9 | { 10 | public SettingsAppearance() 11 | { 12 | InitializeComponent(); 13 | 14 | // a simple view model for appearance configuration 15 | this.DataContext = new SettingsAppearanceViewModel(); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Controls/MiniContentPage.xaml: -------------------------------------------------------------------------------- 1 |  8 | 9 | 10 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Controls/MiniContentPage.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using System.Windows.Controls; 3 | using ShowcaseApp.WPF.Controls; 4 | 5 | namespace ShowcaseApp.WPF.Pages 6 | { 7 | /// 8 | /// Interaction logic for MiniContentPage.xaml 9 | /// 10 | public partial class MiniContentPage : UserControl, ISpecialWindowContentIntro, INotifyPropertyChanged 11 | { 12 | public MiniContentPage() 13 | { 14 | InitializeComponent(); 15 | DataContext = this; 16 | } 17 | 18 | private string _text; 19 | public string IntroText { get { return _text; } set { _text = value; OnPropertyChanged("IntroText"); } } 20 | public event PropertyChangedEventHandler PropertyChanged; 21 | 22 | protected virtual void OnPropertyChanged(string propertyName) 23 | { 24 | var handler = PropertyChanged; 25 | if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName)); 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Controls/MiniXamlPage.xaml: -------------------------------------------------------------------------------- 1 |  9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 27 | 28 | -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Controls/MiniXamlTemplatePage.xaml: -------------------------------------------------------------------------------- 1 |  9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 27 | 28 | -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Controls/SpecialWindowControl.xaml: -------------------------------------------------------------------------------- 1 |  9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/ExampleModels/DataVertex.cs: -------------------------------------------------------------------------------- 1 | using GraphX.Common.Models; 2 | 3 | namespace ShowcaseApp.WPF 4 | { 5 | public class DataVertex: VertexBase 6 | { 7 | public string Text { get; set; } 8 | public string Name { get; set; } 9 | public string Profession { get; set; } 10 | public string Gender { get; set; } 11 | public int Age { get; set; } 12 | public int ImageId { get; set; } 13 | 14 | public bool IsBlue { get; set; } 15 | 16 | #region Calculated or static props 17 | 18 | public override string ToString() 19 | { 20 | return Text; 21 | } 22 | 23 | #endregion 24 | 25 | /// 26 | /// Default constructor for this class 27 | /// (required for serialization). 28 | /// 29 | public DataVertex():this(string.Empty) 30 | { 31 | } 32 | 33 | public DataVertex(string text = "") 34 | { 35 | Text = string.IsNullOrEmpty(text) ? "New Vertex" : text; 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/ExampleModels/ExampleExternalEdgeRoutingAlgorithm.cs: -------------------------------------------------------------------------------- 1 | using System.Threading; 2 | using System.Collections.Generic; 3 | using GraphX.Measure; 4 | using GraphX.Common.Interfaces; 5 | 6 | namespace ShowcaseApp.WPF 7 | { 8 | public class ExampleExternalEdgeRoutingAlgorithm : IExternalEdgeRouting 9 | { 10 | public void Compute(CancellationToken cancellationToken) 11 | { 12 | } 13 | 14 | public IDictionary VertexSizes { get; set; } 15 | 16 | public IDictionary VertexPositions { get; set; } 17 | 18 | readonly Dictionary _edgeRoutes = new Dictionary(); 19 | public IDictionary EdgeRoutes { get { return _edgeRoutes; }} 20 | 21 | public Point[] ComputeSingle(TEdge edge) { return null; } 22 | 23 | public void UpdateVertexData(TVertex vertex, Point position, Rect size) { } 24 | 25 | 26 | public Rect AreaRectangle { get; set; } 27 | 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/ExampleModels/ExampleExternalOverlapRemovalAlgorithm.cs: -------------------------------------------------------------------------------- 1 | using System.Threading; 2 | using System; 3 | using System.Collections.Generic; 4 | using GraphX.Measure; 5 | using GraphX.Common.Interfaces; 6 | 7 | namespace ShowcaseApp.WPF 8 | { 9 | public class ExampleExternalOverlapRemovalAlgorithm: IExternalOverlapRemoval 10 | { 11 | public IDictionary Rectangles { get; set; } 12 | 13 | public void Compute(CancellationToken cancellationToken) 14 | { 15 | throw new NotImplementedException(); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/ExampleModels/ExampleMoveAnimation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using GraphX.Controls.Animations; 3 | 4 | namespace ShowcaseApp.WPF 5 | { 6 | public class ExampleMoveAnimation: MoveAnimationBase 7 | { 8 | public ExampleMoveAnimation() 9 | { 10 | //set animation duration 11 | Duration = TimeSpan.FromSeconds(1); 12 | } 13 | 14 | public override void Cleanup() 15 | { 16 | //cleanup something 17 | } 18 | 19 | public override void RunVertexAnimation() 20 | { 21 | //do some vertex animation. Can be optional. 22 | 23 | //you need to call this manually at the animation end 24 | //if you want corresponding event fired on complete 25 | OnCompleted(); 26 | } 27 | 28 | public override void RunEdgeAnimation() 29 | { 30 | //do some edge animation. Can be optional. 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/ExampleModels/Filters/BlueVertexFilter.cs: -------------------------------------------------------------------------------- 1 | using GraphX.Common.Interfaces; 2 | using QuikGraph; 3 | 4 | namespace ShowcaseApp.WPF.Filters 5 | { 6 | public class BlueVertexFilter: IGraphFilter> 7 | { 8 | public BidirectionalGraph ProcessFilter(BidirectionalGraph inputGraph) 9 | { 10 | inputGraph.RemoveVertexIf(a => !a.IsBlue); 11 | return inputGraph; 12 | } 13 | } 14 | 15 | public class YellowVertexFilter : IGraphFilter> 16 | { 17 | public BidirectionalGraph ProcessFilter(BidirectionalGraph inputGraph) 18 | { 19 | inputGraph.RemoveVertexIf(a => a.IsBlue); 20 | return inputGraph; 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/ExampleModels/GraphAreaExample.cs: -------------------------------------------------------------------------------- 1 | using GraphX; 2 | using GraphX.Controls; 3 | using QuikGraph; 4 | 5 | namespace ShowcaseApp.WPF 6 | { 7 | public class GraphAreaExample : GraphArea> { } 8 | } 9 | -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/ExampleModels/GraphExample.cs: -------------------------------------------------------------------------------- 1 | using QuikGraph; 2 | 3 | namespace ShowcaseApp.WPF 4 | { 5 | public class GraphExample : BidirectionalGraph 6 | { 7 | } 8 | 9 | 10 | } 11 | -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/ExampleModels/LogicCoreExample.cs: -------------------------------------------------------------------------------- 1 | using GraphX.Logic.Models; 2 | using QuikGraph; 3 | 4 | namespace ShowcaseApp.WPF 5 | { 6 | public class LogicCoreExample : GXLogicCore> 7 | { 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Models/ColorModel.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Media; 2 | 3 | namespace ShowcaseApp.WPF.Models 4 | { 5 | public class ColorModel 6 | { 7 | public Color Color {get;set;} 8 | public string Text { get; set; } 9 | 10 | public ColorModel(string text, Color color) 11 | { 12 | Text = text; Color = color; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Models/DataItem.cs: -------------------------------------------------------------------------------- 1 | namespace ShowcaseApp.WPF.Models 2 | { 3 | public class DataItem 4 | { 5 | public int ID { get; set; } 6 | 7 | public string Text { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Models/EditorOperationMode.cs: -------------------------------------------------------------------------------- 1 | namespace ShowcaseApp.WPF.Models 2 | { 3 | public enum EditorOperationMode 4 | { 5 | Select = 0, 6 | Edit, 7 | Delete 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Models/ImageLoader.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Windows.Media.Imaging; 4 | 5 | namespace ShowcaseApp.WPF.Models 6 | { 7 | public static class ImageLoader 8 | { 9 | private static readonly List Images = new List(); 10 | 11 | static ImageLoader() 12 | { 13 | Images.Add(new BitmapImage(new Uri(@"pack://application:,,,/ShowcaseApp.WPF;component/Assets/circle_red.png", UriKind.Absolute)) { CacheOption = BitmapCacheOption.OnLoad }); 14 | Images.Add(new BitmapImage(new Uri(@"pack://application:,,,/ShowcaseApp.WPF;component/Assets/circle_blue.png", UriKind.Absolute)) { CacheOption = BitmapCacheOption.OnLoad }); 15 | Images.Add(new BitmapImage(new Uri(@"pack://application:,,,/ShowcaseApp.WPF;component/Assets/circle_green.png", UriKind.Absolute)) { CacheOption = BitmapCacheOption.OnLoad }); 16 | } 17 | 18 | public static BitmapImage GetImageById(int id) 19 | { 20 | return Images.Count < id ? null : Images[id]; 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Models/LinkCommands.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Input; 2 | 3 | namespace ShowcaseApp.WPF.Models 4 | { 5 | public static class LinkCommands 6 | { 7 | private static readonly RoutedUICommand ShowMiniSpecialDialogInternal = new RoutedUICommand("Show help", "ShowMiniSpecialDialog", typeof(LinkCommands)); 8 | 9 | /// 10 | /// Gets the navigate link routed command. 11 | /// 12 | public static RoutedUICommand ShowMiniSpecialDialog 13 | { 14 | get { return ShowMiniSpecialDialogInternal; } 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Models/MiniSpecialType.cs: -------------------------------------------------------------------------------- 1 | namespace ShowcaseApp.WPF.Models 2 | { 3 | public enum MiniSpecialType 4 | { 5 | None, 6 | LayoutVCP, 7 | EdgesParallel, 8 | LayoutGrouped, 9 | DataFiltering 10 | } 11 | } -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Models/SimpleCommand.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Windows.Input; 3 | 4 | namespace ShowcaseApp.WPF.Models 5 | { 6 | public class SimpleCommand : ICommand 7 | { 8 | public Predicate CanExecuteDelegate { get; set; } 9 | public Action ExecuteDelegate { get; set; } 10 | 11 | public SimpleCommand(Predicate can, Action ex) 12 | { 13 | CanExecuteDelegate = can; 14 | ExecuteDelegate = ex; 15 | } 16 | 17 | #region ICommand Members 18 | 19 | public bool CanExecute(object parameter) 20 | { 21 | if (CanExecuteDelegate != null) 22 | return CanExecuteDelegate(parameter); 23 | return true;// if there is no can execute default to true 24 | } 25 | 26 | public event EventHandler CanExecuteChanged 27 | { 28 | add { CommandManager.RequerySuggested += value; } 29 | remove { CommandManager.RequerySuggested -= value; } 30 | } 31 | 32 | public void Execute(object parameter) 33 | { 34 | if (ExecuteDelegate != null) 35 | ExecuteDelegate(parameter); 36 | } 37 | 38 | #endregion 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Examples/ShowcaseApp.WPF/Pages/FeatureLists/FeaturesPageData.xaml: -------------------------------------------------------------------------------- 1 |  9 | 10 | 11 | 12 | 13 | 14 | 16 |