├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── feature_request.md │ └── support-request.md ├── LICENSE ├── README.md ├── demo-grid.png ├── demos ├── BPMN │ ├── BpmnDi │ │ ├── BpmnDi.csproj │ │ ├── BpmnDiConstants.cs │ │ ├── BpmnDiParser.cs │ │ ├── BpmnDiagram.cs │ │ ├── BpmnDocument.cs │ │ ├── BpmnEdge.cs │ │ ├── BpmnElement.cs │ │ ├── BpmnLabelStyle.cs │ │ ├── BpmnNamespaceManager.cs │ │ ├── BpmnPlane.cs │ │ ├── BpmnShape.cs │ │ ├── MultiLabelFolderNodeConverter.cs │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ └── licenses.licx │ │ └── README.md │ ├── BpmnEditor │ │ ├── App.xaml │ │ ├── BpmnEditor.csproj │ │ ├── BpmnEditorWindow.xaml │ │ ├── BpmnEditorWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ ├── BpmnDISamples │ │ │ │ ├── choreography.bpmn │ │ │ │ ├── collaboration.bpmn │ │ │ │ ├── collapsed_subprocess.bpmn │ │ │ │ ├── different_exception_flows.bpmn │ │ │ │ ├── horizontal_swimlanes.bpmn │ │ │ │ ├── label_styles.bpmn │ │ │ │ ├── lanes_with_information_systems.bpmn │ │ │ │ ├── multiple_diagrams.bpmn │ │ │ │ ├── process_normal_flow.bpmn │ │ │ │ ├── project_application.bpmn │ │ │ │ ├── simple_bpmn_model.bpmn │ │ │ │ ├── subprocess_hierarchy.bpmn │ │ │ │ └── vertical_swimlanes.bpmn │ │ │ └── BpmnSamples │ │ │ │ ├── business.graphml │ │ │ │ ├── collaboration.graphml │ │ │ │ ├── different_exception_flows.graphml │ │ │ │ ├── expanded_subprocess.graphml │ │ │ │ ├── lanes_segment.graphml │ │ │ │ ├── lanes_with_information_systems.graphml │ │ │ │ ├── matrix_lanes.graphml │ │ │ │ ├── process_normal_flow.graphml │ │ │ │ ├── project_application.graphml │ │ │ │ ├── simple_bpmn_model.graphml │ │ │ │ └── vertical_swimlanes.graphml │ │ ├── StylePanel.cs │ │ └── app.config │ ├── BpmnLayout │ │ ├── BackLoopLayerer.cs │ │ ├── BalancingPortOptimizer.cs │ │ ├── BpmnLabelProfitModel.cs │ │ ├── BpmnLayout.cs │ │ ├── BpmnLayout.csproj │ │ ├── GeneratedEnums.cs │ │ ├── PortLocationAdjuster.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── BpmnView │ │ ├── BPMNTypes.cs │ │ ├── BpmnPortCandidateProvider.cs │ │ ├── BpmnView.csproj │ │ ├── Layout │ │ │ └── BpmnLayoutData.cs │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ ├── XamlAttributes.cs │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Styles │ │ │ ├── ActivityNodeStyle.cs │ │ │ ├── AlternatingLeafStripeStyle.cs │ │ │ ├── AnnotationLabelStyle.cs │ │ │ ├── AnnotationNodeStyle.cs │ │ │ ├── BPMNEdgeStyle.cs │ │ │ ├── BpmnNodeStyle.cs │ │ │ ├── ChoreographyLabelModel.cs │ │ │ ├── ChoreographyMessageLabelStyle.cs │ │ │ ├── ChoreographyNodeStyle.cs │ │ │ ├── ConnectedIconLabelStyle.cs │ │ │ ├── ConversationNodeStyle.cs │ │ │ ├── DataObjectNodeStyle.cs │ │ │ ├── DataStoreNodeStyle.cs │ │ │ ├── EventNodeStyle.cs │ │ │ ├── EventPortStyle.cs │ │ │ ├── GatewayNodeStyle.cs │ │ │ ├── GroupNodeStyle.cs │ │ │ ├── MessageLabelStyle.cs │ │ │ ├── PoolHeaderLabelModel.cs │ │ │ ├── PoolNodeStyle.cs │ │ │ └── StripeDescriptor.cs │ │ ├── Util │ │ │ ├── BpmnConstants.cs │ │ │ ├── BpmnDefaultValueConverterHolder.cs │ │ │ ├── IconArrow.cs │ │ │ ├── IconBuilder.cs │ │ │ ├── IconFactory.cs │ │ │ ├── Icons.cs │ │ │ ├── LegacyExtensions.cs │ │ │ ├── ScalingLabelModel.cs │ │ │ └── VisualToggleButton.cs │ │ └── themes │ │ │ └── generic.xaml │ └── README.md ├── Compatibility │ ├── Compatibility │ │ ├── Compatibility.cs │ │ ├── Compatibility.csproj │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ └── README.md ├── Complete │ ├── AggregateGraphWrapper │ │ ├── AggregateGraphWrapper.csproj │ │ ├── AggregateGraphWrapperWindow.xaml │ │ ├── AggregateGraphWrapperWindow.xaml.cs │ │ ├── App.xaml │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ └── Resources │ │ │ └── SampleGraph.graphml │ ├── BasicLayout │ │ ├── App.xaml │ │ ├── BasicLayout.csproj │ │ ├── BasicLayoutDemo.xaml │ │ ├── BasicLayoutDemo.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ └── sample-flat.graphml │ │ └── app.config │ ├── Collapse │ │ ├── App.xaml │ │ ├── Collapse.csproj │ │ ├── GraphCollapseWindow.xaml │ │ ├── GraphCollapseWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ └── app.config │ ├── ComponentDragAndDrop │ │ ├── App.xaml │ │ ├── ClearAreaLayoutHelper.cs │ │ ├── ComponentDragAndDrop.csproj │ │ ├── ComponentDragAndDropDemo.xaml │ │ ├── ComponentDragAndDropDemo.xaml.cs │ │ ├── ComponentDropInputMode.cs │ │ ├── ComponentImageConverter.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ ├── cross.graphml │ │ │ ├── square.graphml │ │ │ ├── star.graphml │ │ │ └── triangle.graphml │ │ └── app.config │ ├── FillAreaAfterDeletion │ │ ├── App.xaml │ │ ├── FillAreaAfterDeletion.csproj │ │ ├── FillAreaAfterDeletionDemo.xaml │ │ ├── FillAreaAfterDeletionDemo.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ ├── balloon.graphml │ │ │ ├── circular.graphml │ │ │ ├── components.graphml │ │ │ ├── grouping.graphml │ │ │ ├── hierarchic.graphml │ │ │ ├── organic.graphml │ │ │ ├── orthogonal.graphml │ │ │ ├── seriesparallel.graphml │ │ │ └── tree.graphml │ │ └── app.config │ ├── GraphAnalysis │ │ ├── Algorithms │ │ │ ├── AlgorithmConfiguration.cs │ │ │ ├── CentralityConfig.cs │ │ │ ├── ConnectivityConfig.cs │ │ │ ├── CyclesConfig.cs │ │ │ ├── IndependentSetConfig.cs │ │ │ ├── MinimumSpanningTreeConfig.cs │ │ │ ├── PathsConfig.cs │ │ │ └── ReachabilityConfig.cs │ │ ├── App.xaml │ │ ├── GraphAnalysis.csproj │ │ ├── GraphAnalysisWindow.xaml │ │ ├── GraphAnalysisWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ ├── Centrality.graphml │ │ │ ├── Connectivity.graphml │ │ │ ├── Cycles.graphml │ │ │ ├── MinimumSpanningTree.graphml │ │ │ └── Paths.graphml │ │ └── app.config │ ├── HierarchicGrouping │ │ ├── App.xaml │ │ ├── HierarchicGrouping.csproj │ │ ├── HierarchicGroupingDemo.xaml │ │ ├── HierarchicGroupingDemo.xaml.cs │ │ ├── LabelInsetsProvider.cs │ │ ├── LabelSizeConstraintProvider.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ └── sample.graphml │ │ └── app.config │ ├── InteractiveClearArea │ │ ├── App.xaml │ │ ├── ClearAreaLayoutHelper.cs │ │ ├── InteractiveClearArea.csproj │ │ ├── InteractiveClearAreaDemo.xaml │ │ ├── InteractiveClearAreaDemo.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── RectanglePositionHandler.cs │ │ ├── Resources │ │ │ ├── balloon.graphml │ │ │ ├── circular.graphml │ │ │ ├── components.graphml │ │ │ ├── grouping.graphml │ │ │ ├── hierarchic.graphml │ │ │ ├── organic.graphml │ │ │ ├── orthogonal.graphml │ │ │ ├── seriesparallel.graphml │ │ │ └── tree.graphml │ │ └── app.config │ ├── IsometricDrawing │ │ ├── App.xaml │ │ ├── HeightHandle.cs │ │ ├── HeightHandleProvider.cs │ │ ├── IsometricDrawing.csproj │ │ ├── IsometricDrawingWindow.xaml │ │ ├── IsometricDrawingWindow.xaml.cs │ │ ├── IsometricGroupNodeStyle.cs │ │ ├── IsometricNodeStyle.cs │ │ ├── Model │ │ │ ├── EdgeData.cs │ │ │ ├── Geometry.cs │ │ │ ├── IsometricData.cs │ │ │ └── NodeData.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── LargeGraphAggregation │ │ ├── AggregationHelper.cs │ │ ├── App.xaml │ │ ├── LargeGraphAggregation.csproj │ │ ├── LargeGraphAggregation.xaml │ │ ├── LargeGraphAggregation.xaml.cs │ │ ├── NodeAggregationConfig.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ └── SampleGraph.graphmlz │ │ └── app.config │ ├── LogicGate │ │ ├── App.xaml │ │ ├── LogicGate.csproj │ │ ├── LogicGateNodeStyle.cs │ │ ├── LogicGateWindow.xaml │ │ ├── LogicGateWindow.xaml.cs │ │ ├── NodeImageConverter.cs │ │ ├── PortDescriptor.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ └── defaultGraph.graphml │ │ └── app.config │ ├── Neo4JIntegration │ │ ├── App.config │ │ ├── App.xaml │ │ ├── Converters.cs │ │ ├── Neo4JIntegration.csproj │ │ ├── Neo4JIntegrationDemoWindow.xaml │ │ ├── Neo4JIntegrationDemoWindow.xaml.cs │ │ ├── PathViewer.xaml │ │ ├── PathViewer.xaml.cs │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ ├── Resources.Designer.cs │ │ │ ├── Resources.resx │ │ │ ├── Settings.Designer.cs │ │ │ ├── Settings.settings │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── ShortestPathDialog.xaml │ │ └── ShortestPathDialog.xaml.cs │ ├── NetworkMonitoring │ │ ├── App.xaml │ │ ├── CalloutLabelStyleDecorator.cs │ │ ├── Helpers.cs │ │ ├── Icons.xaml │ │ ├── LevelOfDetailLabelStyleDecorator.cs │ │ ├── Model │ │ │ ├── ModelEdge.cs │ │ │ ├── ModelNode.cs │ │ │ └── NetworkModel.cs │ │ ├── NetworkMonitoring.csproj │ │ ├── NetworkMonitoringDemo.xaml │ │ ├── NetworkMonitoringDemo.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ └── network.graphml │ │ ├── Simulator │ │ │ └── NetworkSimulator.cs │ │ ├── Styles.xaml │ │ └── app.config │ ├── OrgChart │ │ ├── App.xaml │ │ ├── OrgChart.csproj │ │ ├── OrgChartTemplates.xaml │ │ ├── OrgChartWindow.xaml │ │ ├── OrgChartWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── ZoomToTemplateConverter.cs │ │ ├── app.config │ │ └── resources │ │ │ ├── orgchartmodel.xml │ │ │ ├── usericon_female1.png │ │ │ ├── usericon_female1_16.png │ │ │ ├── usericon_female2.png │ │ │ ├── usericon_female3.png │ │ │ ├── usericon_male1.png │ │ │ ├── usericon_male2.png │ │ │ └── usericon_male3.png │ ├── OverlapAvoidingEditor │ │ ├── App.xaml │ │ ├── HidingEdgeDescriptor.cs │ │ ├── LayoutHelper.cs │ │ ├── NonOverlapPositionHandler.cs │ │ ├── NonOverlapReshapeHandler.cs │ │ ├── OverlapAvoidingEditor.csproj │ │ ├── OverlapAvoidingEditorDemo.xaml │ │ ├── OverlapAvoidingEditorDemo.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ └── grouping.graphml │ │ ├── SingleSelectionSupport.cs │ │ └── app.config │ ├── README.md │ ├── RelocateSubtree │ │ ├── App.xaml │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── RelocateSubtree.csproj │ │ ├── RelocateSubtreeDemo.xaml │ │ ├── RelocateSubtreeDemo.xaml.cs │ │ ├── RelocateSubtreeLayoutHelper.cs │ │ ├── Resources │ │ │ └── tree.graphml │ │ ├── Subtree.cs │ │ ├── SubtreePositionHandler.cs │ │ └── app.config │ ├── RotatableNodes │ │ ├── AdjustOutlinePortInsidenessEdgePathCropper.cs │ │ ├── App.config │ │ ├── App.xaml │ │ ├── CachingOrientedRectangle.cs │ │ ├── NodeRotateHandle.cs │ │ ├── NodeRotateHandleProvider.cs │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ ├── circle.graphml │ │ │ ├── rotate.cur │ │ │ └── sine.graphml │ │ ├── RotatableNodeClipboardHelper.cs │ │ ├── RotatableNodeIndicatorInstaller.cs │ │ ├── RotatableNodeLabelModelDecorator.cs │ │ ├── RotatableNodeStyleDecorator.cs │ │ ├── RotatableNodes.csproj │ │ ├── RotatableNodesWindow.xaml │ │ ├── RotatableNodesWindow.xaml.cs │ │ ├── RotatablePortLocationModelDecorator.cs │ │ ├── RotatedNodeLayoutStage.cs │ │ ├── RotatedNodeResizeHandle.cs │ │ ├── RotatedReshapeHandleProvider.cs │ │ └── RotationAwareGroupBoundsCalculator.cs │ ├── ShortestPath │ │ ├── App.xaml │ │ ├── Generators │ │ │ ├── RandomGraphGenerator.cs │ │ │ ├── RandomSupport.cs │ │ │ └── TreeGenerator.cs │ │ ├── LabelValueDialog.xaml │ │ ├── LabelValueDialog.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── ShortestPath.csproj │ │ ├── ShortestPathWindow.xaml │ │ ├── ShortestPathWindow.xaml.cs │ │ └── app.config │ └── TableEditor │ │ ├── App.xaml │ │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ ├── Resources.Designer.cs │ │ ├── Resources.resx │ │ ├── Settings.Designer.cs │ │ ├── Settings.settings │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ └── sample.graphml │ │ ├── StylePanel.cs │ │ ├── Styles │ │ ├── AlternatingStripeStyle.cs │ │ └── StripeDescriptor.cs │ │ ├── TableEditor.csproj │ │ ├── TableEditorWindow.xaml │ │ ├── TableEditorWindow.xaml.cs │ │ └── app.config ├── DataBinding │ ├── AdjacencyGraphBuilder │ │ ├── AdjacencyGraphBuilder.csproj │ │ ├── AdjacencyGraphBuilderWindow.xaml │ │ ├── AdjacencyGraphBuilderWindow.xaml.cs │ │ ├── App.xaml │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ └── licenses.licx │ │ ├── README.md │ │ └── Resources │ │ │ └── model.xml │ ├── BusinessModelAdapter │ │ ├── App.xaml │ │ ├── BusinessModelAdapter.csproj │ │ ├── BusinessModelAdapterWindow.xaml │ │ ├── BusinessModelAdapterWindow.xaml.cs │ │ ├── Customer.cs │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ └── licenses.licx │ │ ├── README.md │ │ └── StyleResources.xaml │ ├── DataSet │ │ ├── AdventureWorksEmployees.Designer.cs │ │ ├── AdventureWorksEmployees.xml │ │ ├── AdventureWorksEmployees.xsc │ │ ├── AdventureWorksEmployees.xsd │ │ ├── AdventureWorksEmployees.xss │ │ ├── App.xaml │ │ ├── DataSet.csproj │ │ ├── DataSetBindingWindow.xaml │ │ ├── DataSetBindingWindow.xaml.cs │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ ├── Resources.Designer.cs │ │ │ ├── Resources.resx │ │ │ ├── Settings.Designer.cs │ │ │ ├── Settings.settings │ │ │ └── licenses.licx │ │ ├── README.md │ │ └── app.config │ ├── Dynamic │ │ ├── App.xaml │ │ ├── Customer.cs │ │ ├── Dynamic.csproj │ │ ├── DynamicBindingWindow.xaml │ │ ├── DynamicBindingWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ └── app.config │ ├── GraphBuilder │ │ ├── App.xaml │ │ ├── GraphBuilder.csproj │ │ ├── GraphBuilderWindow.xaml │ │ ├── GraphBuilderWindow.xaml.cs │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ └── licenses.licx │ │ ├── README.md │ │ └── Resources │ │ │ └── model.xml │ ├── GraphSource │ │ ├── App.xaml │ │ ├── GraphSource.csproj │ │ ├── GraphSourceWindow.xaml │ │ ├── GraphSourceWindow.xaml.cs │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ ├── classesmodel.xml │ │ │ └── model.xml │ │ └── app.config │ ├── InteractiveEdgesGraphSource │ │ ├── AddConnectionDialog.xaml │ │ ├── AddConnectionDialog.xaml.cs │ │ ├── App.xaml │ │ ├── CreateNodeDialog.xaml │ │ ├── CreateNodeDialog.xaml.cs │ │ ├── InteractiveEdgesGraphSource.csproj │ │ ├── InteractiveEdgesGraphSourceWindow.xaml │ │ ├── InteractiveEdgesGraphSourceWindow.xaml.cs │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ └── licenses.licx │ │ ├── README.md │ │ └── app.config │ ├── InteractiveNodesGraphSource │ │ ├── App.xaml │ │ ├── InteractiveNodesGraphSource.csproj │ │ ├── InteractiveNodesGraphSourceWindow.xaml │ │ ├── InteractiveNodesGraphSourceWindow.xaml.cs │ │ ├── NodeDragInputMode.cs │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── StringInputDialog.xaml │ │ ├── StringInputDialog.xaml.cs │ │ └── app.config │ └── README.md ├── Input │ ├── ContextMenu │ │ ├── App.xaml │ │ ├── ContextMenu.csproj │ │ ├── ContextMenuWindow.xaml │ │ ├── ContextMenuWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── CustomLabelModel │ │ ├── App.xaml │ │ ├── CustomLabelModel.csproj │ │ ├── CustomLabelModelWindow.xaml │ │ ├── CustomLabelModelWindow.xaml.cs │ │ ├── MyNodeLabelModel.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── CustomPortModel │ │ ├── App.xaml │ │ ├── CustomPortModel.csproj │ │ ├── CustomPortModelWindow.xaml │ │ ├── CustomPortModelWindow.xaml.cs │ │ ├── MyNodePortLocationModel.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── CustomSnapping │ │ ├── App.xaml │ │ ├── CustomSnapping.csproj │ │ ├── CustomSnappingWindow.xaml │ │ ├── CustomSnappingWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ └── CustomSnapping.graphml │ │ └── UI │ │ │ ├── AdditionalSnapLineMoveInputMode.cs │ │ │ └── AdditionalSnapLineVisualCreator.cs │ ├── DragAndDrop │ │ ├── App.xaml │ │ ├── DragAndDrop.csproj │ │ ├── DragAndDropWindow.xaml │ │ ├── DragAndDropWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── EdgeReconnection │ │ ├── App.xaml │ │ ├── EdgeReconnection.csproj │ │ ├── EdgeReconnectionWindow.xaml │ │ ├── EdgeReconnectionWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── HandleProvider │ │ ├── App.xaml │ │ ├── HandleProvider.csproj │ │ ├── HandleProviderWindow.xaml │ │ ├── HandleProviderWindow.xaml.cs │ │ ├── LabelHandleProvider.cs │ │ ├── LabelResizeHandle.cs │ │ ├── LabelRotateHandle.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── LabelEditing │ │ ├── App.xaml │ │ ├── LabelEditing.csproj │ │ ├── LabelEditingDemo.xaml │ │ ├── LabelEditingDemo.xaml.cs │ │ ├── MyEditLabelHelper.cs │ │ ├── PageHeaderSupport.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ └── ZoomInvariantLabelStyle.cs │ ├── LensInputMode │ │ ├── App.xaml │ │ ├── LensInputMode.cs │ │ ├── LensInputMode.csproj │ │ ├── LensInputModeWindow.xaml │ │ ├── LensInputModeWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── MoveUnselectedNodes │ │ ├── App.xaml │ │ ├── MoveUnselectedNodes.csproj │ │ ├── MoveUnselectedNodesWindow.xaml │ │ ├── MoveUnselectedNodesWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── NodeGroupResizing │ │ ├── App.xaml │ │ ├── NodeGroupResizing.csproj │ │ ├── NodeGroupResizing.xaml │ │ ├── NodeGroupResizing.xaml.cs │ │ ├── NodeGroupResizingInputMode.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ └── Resources │ │ │ └── sampleGraph.graphml │ ├── OrthogonalEdges │ │ ├── App.xaml │ │ ├── OrthogonalEdges.csproj │ │ ├── OrthogonalEdgesWindow.xaml │ │ ├── OrthogonalEdgesWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── PortCandidateProvider │ │ ├── App.xaml │ │ ├── PortCandidateProvider.csproj │ │ ├── PortCandidateProviderWindow.xaml │ │ ├── PortCandidateProviderWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── PositionHandler │ │ ├── App.xaml │ │ ├── PositionHandler.csproj │ │ ├── PositionHandlerWindow.xaml │ │ ├── PositionHandlerWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── README.md │ ├── ReparentHandler │ │ ├── App.xaml │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── ReparentHandler.csproj │ │ ├── ReparentHandlerWindow.xaml │ │ └── ReparentHandlerWindow.xaml.cs │ ├── ReshapeHandleProvider │ │ ├── App.xaml │ │ ├── PortReshapeHandle.cs │ │ ├── PortReshapeHandlerProvider.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── ReshapeHandleProvider.csproj │ │ ├── ReshapeHandleProviderWindow.xaml │ │ ├── ReshapeHandleProviderWindow.xaml.cs │ │ └── Resources │ │ │ └── defaultGraph.graphml │ ├── ReshapeHandleProviderConfiguration │ │ ├── App.xaml │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── ReshapeHandleProviderConfiguration.csproj │ │ ├── ReshapeHandleProviderConfigurationWindow.xaml │ │ └── ReshapeHandleProviderConfigurationWindow.xaml.cs │ ├── SingleSelection │ │ ├── App.xaml │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ └── SingleSelection.graphml │ │ ├── SingleSelection.csproj │ │ ├── SingleSelectionWindow.xaml │ │ └── SingleSelectionWindow.xaml.cs │ ├── SizeConstraintProvider │ │ ├── App.xaml │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── SizeConstraintProvider.csproj │ │ ├── SizeConstraintProviderWindow.xaml │ │ └── SizeConstraintProviderWindow.xaml.cs │ └── SnapLines │ │ ├── App.xaml │ │ ├── Properties │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ └── SnapLineDemo.graphml │ │ ├── SnapLines.csproj │ │ ├── SnapLinesWindow.xaml │ │ └── SnapLinesWindow.xaml.cs ├── Layout │ ├── AbortHandler │ │ ├── AbortDialog.xaml │ │ ├── AbortDialog.xaml.cs │ │ ├── AbortHandler.csproj │ │ ├── AbortHandlerWindow.xaml │ │ ├── AbortHandlerWindow.xaml.cs │ │ ├── App.xaml │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ └── app.config │ ├── BusRouter │ │ ├── App.xaml │ │ ├── App.xaml.cs │ │ ├── BusRouter.csproj │ │ ├── BusRouterWindow.xaml │ │ ├── BusRouterWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ ├── computer.png │ │ │ ├── default.graphml │ │ │ └── network.png │ │ └── app.config │ ├── IncrementalHierarchicLayout │ │ ├── App.xaml │ │ ├── IncrementalHierarchicLayout.csproj │ │ ├── IncrementalHierarchicLayoutDemo.xaml │ │ ├── IncrementalHierarchicLayoutDemo.xaml.cs │ │ ├── LayerPositionHandler.cs │ │ ├── LayerVisualCreator.cs │ │ ├── PortConstraintBendHandle.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ └── app.config │ ├── InteractiveOrganic │ │ ├── App.xaml │ │ ├── InteractiveOrganic.csproj │ │ ├── InteractiveOrganicWindow.xaml │ │ ├── InteractiveOrganicWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ └── Resources │ │ │ └── sample.graphml │ ├── LayerConstraints │ │ ├── App.xaml │ │ ├── LayerConstraints.csproj │ │ ├── LayerConstraintsWindow.xaml │ │ ├── LayerConstraintsWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── RandomGraphGenerator.cs │ │ └── app.config │ ├── LayoutConfigurations │ │ ├── BalloonLayoutConfig.cs │ │ ├── BusEdgeRouterConfig.cs │ │ ├── ChannelEdgeRouterConfig.cs │ │ ├── CircularLayoutConfig.cs │ │ ├── ClassicTreeLayoutConfig.cs │ │ ├── CompactDiskLayoutConfig.cs │ │ ├── ComponentLayoutConfig.cs │ │ ├── GraphTransformerConfig.cs │ │ ├── HierarchicLayoutConfig.cs │ │ ├── LabelingConfig.cs │ │ ├── LayoutConfiguration.cs │ │ ├── LayoutConfigurations.csproj │ │ ├── OrganicEdgeRouterConfig.cs │ │ ├── OrganicLayoutConfig.cs │ │ ├── OrthogonalLayoutConfig.cs │ │ ├── ParallelEdgeRouterConfig.cs │ │ ├── PartialLayoutConfig.cs │ │ ├── PolylineEdgeRouterConfig.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── RadialLayoutConfig.cs │ │ ├── SeriesParallelLayoutConfig.cs │ │ ├── TabularLayoutConfig.cs │ │ └── TreeLayoutConfig.cs │ ├── LayoutStyles │ │ ├── App.xaml │ │ ├── LayoutStyles.csproj │ │ ├── LayoutStylesWindow.xaml │ │ ├── LayoutStylesWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ ├── balloon.graphml │ │ │ ├── busrouter.graphml │ │ │ ├── circular.graphml │ │ │ ├── classictree.graphml │ │ │ ├── compactdisk.graphml │ │ │ ├── components.graphml │ │ │ ├── edgerouter.graphml │ │ │ ├── edgerouterwithbuses.graphml │ │ │ ├── grouping.graphml │ │ │ ├── hierarchic.graphml │ │ │ ├── hierarchicwithbuses.graphml │ │ │ ├── hierarchicwithsubcomponents.graphml │ │ │ ├── labelplacement.graphml │ │ │ ├── organic.graphml │ │ │ ├── organicwithsubstructures.graphml │ │ │ ├── orthogonal.graphml │ │ │ ├── orthogonalrouter.graphml │ │ │ ├── orthogonalwithsubstructures.graphml │ │ │ ├── radial.graphml │ │ │ ├── seriesparallel.graphml │ │ │ ├── tabular.graphml │ │ │ └── tree.graphml │ │ └── app.config │ ├── MarqueeClearArea │ │ ├── App.xaml │ │ ├── ClearAreaLayoutHelper.cs │ │ ├── MarqueeClearArea.csproj │ │ ├── MarqueeClearAreaDemo.xaml │ │ ├── MarqueeClearAreaDemo.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ └── grouping.graphml │ │ └── app.config │ ├── MazeRouting │ │ ├── App.xaml │ │ ├── MazeRouting.csproj │ │ ├── MazeRoutingWindow.xaml │ │ ├── MazeRoutingWindow.xaml.cs │ │ ├── PolylineEdgeRouterCustomConfig.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ ├── mazeOnly.graphml │ │ │ └── normalNodesOnly.graphml │ │ └── app.config │ ├── MixedLayout │ │ ├── App.xaml │ │ ├── MixedLayout.csproj │ │ ├── MixedLayoutDemo.xaml │ │ ├── MixedLayoutDemo.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ ├── Table Sample.graphml │ │ │ └── Three-Tier Sample.graphml │ │ ├── TableLayout.cs │ │ ├── ThreeTierLayout.cs │ │ └── app.config │ ├── MultiPage │ │ ├── App.xaml │ │ ├── MultiPage.csproj │ │ ├── MultiPageIGraphBuilder.cs │ │ ├── MultiPageWindow.xaml │ │ ├── MultiPageWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ └── Resources │ │ │ └── pop-artists-small.graphml │ ├── NodeLabeling │ │ ├── App.xaml │ │ ├── BackgroundVisualCreator.cs │ │ ├── CityLabelStyle.cs │ │ ├── NodeLabeling.csproj │ │ ├── NodeLabeling.resx │ │ ├── NodeLabelingWindow.xaml │ │ ├── NodeLabelingWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ ├── blank_us_map.xaml │ │ │ └── uscities.graphml │ │ └── app.config │ ├── NodeTypes │ │ ├── App.xaml │ │ ├── NodeTypes.csproj │ │ ├── NodeTypesDemo.xaml │ │ ├── NodeTypesDemo.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ ├── circular.graphml │ │ │ ├── component.graphml │ │ │ ├── hierarchic.graphml │ │ │ ├── organic.graphml │ │ │ └── tree.graphml │ │ └── app.config │ ├── PartialLayout │ │ ├── App.xaml │ │ ├── PartialLayout.csproj │ │ ├── PartialLayoutDemo.xaml │ │ ├── PartialLayoutDemo.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ ├── Circular.graphml │ │ │ ├── Hierarchic.graphml │ │ │ ├── Orthogonal.graphml │ │ │ └── organic.graphml │ │ └── app.config │ ├── PortCandidate │ │ ├── App.xaml │ │ ├── CirclePortStyle.cs │ │ ├── FlowChartNodeStyle.cs │ │ ├── NodeImageConverter.cs │ │ ├── PortCandidate.csproj │ │ ├── PortCandidateWindow.xaml │ │ ├── PortCandidateWindow.xaml.cs │ │ ├── PortDescriptor.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ └── defaultGraph.graphml │ │ └── app.config │ ├── PreferredLabelPlacement │ │ ├── App.xaml │ │ ├── NonTreeEdgeRouterStage.cs │ │ ├── PreferredLabelPlacement.csproj │ │ ├── PreferredLabelPlacement.resx │ │ ├── PreferredLabelPlacementWindow.xaml │ │ ├── PreferredLabelPlacementWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ └── preferredplacement.graphml │ │ └── app.config │ ├── README.md │ ├── SankeyLayout │ │ ├── App.config │ │ ├── App.xaml │ │ ├── App.xaml.cs │ │ ├── DemoEdgeStyle.cs │ │ ├── HighlightManager.cs │ │ ├── HorizontallyConstrainedPositionHandler.cs │ │ ├── NodeResizingStage.cs │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ ├── Resources.Designer.cs │ │ │ ├── Resources.resx │ │ │ ├── Settings.Designer.cs │ │ │ ├── Settings.settings │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── SankeyLayout.cs │ │ ├── SankeyLayout.csproj │ │ ├── SankeyWindow.xaml │ │ ├── SankeyWindow.xaml.cs │ │ └── TagUndoUnit.cs │ ├── SequenceConstraints │ │ ├── App.xaml │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── RandomGraphGenerator.cs │ │ ├── SequenceConstraints.csproj │ │ ├── SequenceConstraintsWindow.xaml │ │ ├── SequenceConstraintsWindow.xaml.cs │ │ └── app.config │ └── TreeLayout │ │ ├── App.xaml │ │ ├── Configuration │ │ ├── ARNodePlacerConfiguration.cs │ │ ├── AssistantPlacerConfiguration.cs │ │ ├── BusPlacerConfiguration.cs │ │ ├── DefaultNodePlacerConfiguration.cs │ │ ├── DoubleLinePlacerConfiguration.cs │ │ ├── LeftRightPlacerConfiguration.cs │ │ ├── NodePlacerDescriptor.cs │ │ ├── RotatableNodePlacerConfigurationBase.cs │ │ └── SimpleNodePlacerConfiguration.cs │ │ ├── NodePlacerPanel.xaml │ │ ├── NodePlacerPanel.xaml.cs │ │ ├── Properties │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ └── orgchartmodel.xml │ │ ├── TreeDemo.xaml │ │ ├── TreeDemo.xaml.cs │ │ ├── TreeLayout.csproj │ │ └── app.config ├── LayoutOnly │ ├── AdvancedLayout │ │ ├── AdvancedLayout.csproj │ │ ├── AdvancedLayoutDemo.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── Graph │ │ ├── Graph.csproj │ │ ├── GraphDemo.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── GroupingLayout │ │ ├── GroupingLayout.csproj │ │ ├── GroupingLayoutDemo.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── HierarchicLayout │ │ ├── HierarchicLayout.csproj │ │ ├── HierarchicLayoutDemo.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── LayoutGraphViewer │ │ ├── GraphViewer.xaml │ │ ├── GraphViewer.xaml.cs │ │ ├── LayoutGraphViewer.csproj │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── List │ │ ├── List.csproj │ │ ├── ListDemo.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── NodeMap │ │ ├── NodeMap.csproj │ │ ├── NodeMapDemo.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── README.md │ ├── ShortestPathAlgorithm │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── RandomGraphGenerator.cs │ │ ├── RandomSupport.cs │ │ ├── ShortestPathAlgorithm.csproj │ │ └── ShortestPathDemo.cs │ ├── SimpleLayout │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── SimpleLayout.csproj │ │ └── SimpleLayoutDemo.cs │ └── SwimLaneLayout │ │ ├── Properties │ │ └── licenses.licx │ │ ├── README.md │ │ ├── SwimLaneLayout.csproj │ │ └── SwimLaneLayoutDemo.cs ├── README.md ├── Style │ ├── ArrowNodeStyle │ │ ├── App.xaml │ │ ├── ArrowNodeStyle.csproj │ │ ├── ArrowNodeStyleAngleHandle.cs │ │ ├── ArrowNodeStyleHandleProvider.cs │ │ ├── ArrowNodeStyleShaftRatioHandle.cs │ │ ├── ArrowNodeStyleWindow.xaml │ │ ├── ArrowNodeStyleWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── BezierEdgeStyle │ │ ├── App.xaml │ │ ├── BezierBendCreator.cs │ │ ├── BezierCreateEdgeInputMode.cs │ │ ├── BezierEdgeHandleProvider.cs │ │ ├── BezierEdgeStyle.csproj │ │ ├── BezierEdgeStyleWindow.xaml │ │ ├── BezierEdgeStyleWindow.xaml.cs │ │ ├── BezierGraphEditorInputMode.cs │ │ ├── BezierHandles.cs │ │ ├── BezierOverviewVisualCreator.cs │ │ ├── BezierSelectionIndicatorInstaller.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ └── Resources │ │ │ ├── SampleCircle.graphml │ │ │ └── SampleLabels.graphml │ ├── ControlStyles │ │ ├── App.xaml │ │ ├── ControlStyles.csproj │ │ ├── ControlStylesDemo.xaml │ │ ├── ControlStylesDemo.xaml.cs │ │ ├── CustomTemplates.xaml │ │ ├── Customer.cs │ │ ├── Product.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Relation.cs │ │ └── Resources │ │ │ └── model.graphml │ ├── DefaultLabelStyle │ │ ├── App.xaml │ │ ├── DefaultLabelStyle.csproj │ │ ├── DefaultLabelStyleDemo.xaml │ │ ├── DefaultLabelStyleDemo.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── GroupNodeStyle │ │ ├── App.xaml │ │ ├── GroupNodeStyle.csproj │ │ ├── GroupNodeStyleDemo.xaml │ │ ├── GroupNodeStyleDemo.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── README.md │ ├── RectangleNodeStyle │ │ ├── App.xaml │ │ ├── CornerSizeHandle.cs │ │ ├── CornerSizeHandleProvider.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── RectangleNodeStyle.csproj │ │ ├── RectangleNodeStyleWindow.xaml │ │ └── RectangleNodeStyleWindow.xaml.cs │ ├── SelectionStyling │ │ ├── App.xaml │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ ├── SelectionStyling.graphml │ │ │ └── edit_label.png │ │ ├── SelectionStyling.csproj │ │ ├── SelectionStylingDemo.xaml │ │ └── SelectionStylingDemo.xaml.cs │ ├── ShapeNodeStyle │ │ ├── App.xaml │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── ShapeNodeStyle.csproj │ │ ├── ShapeNodeStyleDemo.xaml │ │ └── ShapeNodeStyleDemo.xaml.cs │ ├── SimpleArrow │ │ ├── App.xaml │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── SimpleArrow.csproj │ │ ├── SimpleArrowWindow.xaml │ │ ├── SimpleArrowWindow.xaml.cs │ │ └── TaperedArrow.cs │ ├── SimpleCustomStyle │ │ ├── App.xaml │ │ ├── MySimpleArrow.cs │ │ ├── MySimpleEdgeStyle.cs │ │ ├── MySimpleLabelStyle.cs │ │ ├── MySimpleNodeStyle.cs │ │ ├── MySimplePortStyle.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ ├── SimpleCustomStyle.graphml │ │ │ └── edit_label.png │ │ ├── SimpleCustomStyle.csproj │ │ ├── SimpleCustomStyleWindow.xaml │ │ └── SimpleCustomStyleWindow.xaml.cs │ ├── StyleDecorators │ │ ├── App.xaml │ │ ├── EdgeStyleDecorator.cs │ │ ├── LabelStyleDecorator.cs │ │ ├── NodeStyleDecorator.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ ├── computer.png │ │ │ ├── internet.png │ │ │ ├── network.png │ │ │ ├── printer.png │ │ │ ├── scanner.png │ │ │ └── switch.png │ │ ├── StyleDecorators.csproj │ │ ├── StyleDecoratorsDemo.xaml │ │ └── StyleDecoratorsDemo.xaml.cs │ ├── TableNodeStyle │ │ ├── App.xaml │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ ├── Resources.Designer.cs │ │ │ ├── Resources.resx │ │ │ ├── Settings.Designer.cs │ │ │ ├── Settings.settings │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ ├── Alternating-Style.graphml │ │ │ ├── BPMN-Style.graphml │ │ │ └── NodeControl-Style.graphml │ │ ├── Styles │ │ │ ├── AlternatingStripeStyle.cs │ │ │ ├── BPMNStyle.cs │ │ │ └── StripeDescriptor.cs │ │ ├── TableNodeStyle.csproj │ │ ├── TableNodeStyleWindow.xaml │ │ └── TableNodeStyleWindow.xaml.cs │ ├── TextWrapping │ │ ├── App.xaml │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── TextWrapping.csproj │ │ ├── TextWrappingWindow.xaml │ │ └── TextWrappingWindow.xaml.cs │ ├── UMLClassStyle │ │ ├── App.xaml │ │ ├── ClassInfo.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ ├── pill_blue.png │ │ │ ├── pill_green.png │ │ │ └── pill_red.png │ │ ├── UMLClassStyle.csproj │ │ ├── UMLClassStyleDemo.xaml │ │ └── UMLClassStyleDemo.xaml.cs │ └── VisualStateManager │ │ ├── App.xaml │ │ ├── CustomTemplates.xaml │ │ ├── Customer.cs │ │ ├── Product.cs │ │ ├── Properties │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Relation.cs │ │ ├── Resources │ │ └── model.graphml │ │ ├── VSMDemo.xaml │ │ ├── VSMDemo.xaml.cs │ │ ├── VSMEdgeSegmentControl.cs │ │ ├── VSMEdgeSegmentControlEdgeStyle.cs │ │ ├── VSMLabelControl.cs │ │ ├── VSMLabelControlLabelStyle.cs │ │ ├── VSMNodeControl.cs │ │ ├── VSMNodeControlNodeStyle.cs │ │ ├── VSMPortControl.cs │ │ ├── VSMPortControlPortStyle.cs │ │ └── VisualStateManager.csproj ├── Utils │ ├── Aggregation │ │ ├── AggregateGraphWrapper.cs │ │ ├── Aggregation.csproj │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── DemoToolkit │ │ ├── DemoStyles.cs │ │ ├── DemoToolkit.csproj │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ ├── DemoStyle.xaml │ │ │ ├── Icons.xaml │ │ │ └── yFiles.ico │ │ ├── StyleResources.xaml │ │ └── Themes.cs │ ├── Option │ │ ├── Constraint │ │ │ ├── ConditionActionConstraint.cs │ │ │ ├── ConditionBase.cs │ │ │ ├── ConstraintManager.cs │ │ │ ├── IAction.cs │ │ │ ├── ICondition.cs │ │ │ ├── IConstraint.cs │ │ │ └── LogicalCondition.cs │ │ ├── DataBinding │ │ │ ├── AttributeBasedOptionBuilder.cs │ │ │ ├── AttributeBasedPropertyMapBuilder.cs │ │ │ ├── CompositeHandler.cs │ │ │ ├── DefaultOptionBuilderContext.cs │ │ │ ├── DefaultPropertyBuildContext.cs │ │ │ ├── DefaultSelectionProvider.cs │ │ │ ├── EventFilter.cs │ │ │ ├── IOptionBuilder.cs │ │ │ ├── IOptionBuilderContext.cs │ │ │ ├── IOptionItemFilter.cs │ │ │ ├── IPropertyBuildContext.cs │ │ │ ├── IPropertyItem.cs │ │ │ ├── IPropertyItemDescriptor.cs │ │ │ ├── IPropertyMap.cs │ │ │ ├── ISelectionProvider.cs │ │ │ ├── IValueGetter.cs │ │ │ ├── IValueSetter.cs │ │ │ ├── PropertyMapBuilderBase.cs │ │ │ ├── ReflectionHelper.cs │ │ │ └── SelectionProviderBase.cs │ │ ├── Editor │ │ │ ├── ColorChooser.cs │ │ │ ├── ColorHelper.cs │ │ │ ├── DefaultEditorFactory.cs │ │ │ ├── EditorControl.cs │ │ │ ├── EditorFactory.cs │ │ │ ├── EditorForm.cs │ │ │ ├── EditorForm.xaml │ │ │ └── TableEditorFactory.cs │ │ ├── Handler │ │ │ ├── IOptionGroup.cs │ │ │ ├── IOptionItem.cs │ │ │ ├── OptionGroup.cs │ │ │ ├── OptionHandler.cs │ │ │ ├── OptionItem.cs │ │ │ ├── OptionItemImpl.cs │ │ │ └── RangeValidationRule.cs │ │ ├── I18N │ │ │ ├── I18NFactory.cs │ │ │ ├── OptionHandlerI18N.de.resx │ │ │ └── OptionHandlerI18N.resx │ │ ├── Option.csproj │ │ ├── Properties │ │ │ ├── AssemblyInfo.cs │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── View │ │ │ ├── CopiedOptionHandler.cs │ │ │ └── IModelView.cs │ │ ├── XamlConstants.cs │ │ ├── doc-files │ │ │ ├── figures │ │ │ │ ├── icon_api.gif │ │ │ │ └── node_properties_wpf.jpg │ │ │ └── jssh │ │ │ │ ├── SyntaxHighlighter.css │ │ │ │ ├── shBrushCSharp.js │ │ │ │ ├── shBrushXml.js │ │ │ │ └── shCore.js │ │ ├── themes │ │ │ └── generic.xaml │ │ └── wpf │ │ │ ├── Converters.cs │ │ │ ├── OptionItemPresenter.cs │ │ │ └── TextBoxContainer.cs │ ├── OptionHandler │ │ ├── Attributes.cs │ │ ├── ConfigConverter.cs │ │ ├── ConfigurationEditor.xaml │ │ ├── ConfigurationEditor.xaml.cs │ │ ├── EnumValue.cs │ │ ├── Option.cs │ │ ├── OptionGroup.cs │ │ ├── OptionHandler.csproj │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ └── README.md ├── View │ ├── Bridges │ │ ├── App.xaml │ │ ├── Bridges.csproj │ │ ├── BridgesWindow.xaml │ │ ├── BridgesWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── Clipboard │ │ ├── App.xaml │ │ ├── Clipboard.csproj │ │ ├── GraphClipboardWindow.xaml │ │ ├── GraphClipboardWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── EdgeToEdge │ │ ├── App.xaml │ │ ├── EdgeToEdge.csproj │ │ ├── EdgeToEdgeWindow.xaml │ │ ├── EdgeToEdgeWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ └── Resources │ │ │ └── sample.graphml │ ├── Events │ │ ├── App.xaml │ │ ├── Events.csproj │ │ ├── GraphEventsWindow.xaml │ │ ├── GraphEventsWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ └── Resources │ │ │ └── sample.graphml │ ├── Folding │ │ ├── App.xaml │ │ ├── Folding.csproj │ │ ├── FoldingWindow.xaml │ │ ├── FoldingWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ └── sample.graphml │ ├── GraphMLCompat │ │ ├── App.xaml │ │ ├── Common │ │ │ ├── ColumnExtension.cs │ │ │ ├── LabelDefaultsExtension.cs │ │ │ ├── LabelExtension.cs │ │ │ ├── PortDefaultsExtension.cs │ │ │ ├── PortExtension.cs │ │ │ └── RowExtension.cs │ │ ├── CommonMarkup │ │ │ └── MarkupExtensions.cs │ │ ├── GraphMLCompat.csproj │ │ ├── GraphMLCompatibility.cs │ │ ├── GraphMLCompatibilityWindow.xaml │ │ ├── GraphMLCompatibilityWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ ├── nesting.graphml │ │ │ ├── styles.graphml │ │ │ ├── table.graphml │ │ │ └── uml-diagram.graphml │ │ └── Xaml │ │ │ ├── AnchoredPortLocationModel.cs │ │ │ ├── CenterAnchoredLabelModelParameterExtension.cs │ │ │ ├── CollapsibleNodeStyleDecoratorExtension.cs │ │ │ ├── DynamicTableNodeStyleExtension.cs │ │ │ ├── EdgeSegmentControlEdgeStyleExtension.cs │ │ │ ├── GenericPortLocationModelExtension.cs │ │ │ ├── IconLabelStyleExtension.cs │ │ │ ├── LabelControlLabelStyleExtension.cs │ │ │ ├── LayoutAnchoredLabelModelParameterExtension.cs │ │ │ ├── NinePositionsEdgeLabelModelExtension.cs │ │ │ ├── NodeControlNodeStyleExtension.cs │ │ │ ├── NodeScaledPortLocationModelExtension.cs │ │ │ ├── NullValueSerializer.cs │ │ │ ├── PolylineEdgeStyleExtension.cs │ │ │ ├── PortControlPortStyleExtension.cs │ │ │ ├── RotatedSideSliderEdgeLabelModel.cs │ │ │ ├── RotatedSideSliderLabelModelParameterExtension.cs │ │ │ ├── RotatedSideSliderParameter.cs │ │ │ ├── RotatedSliderEdgeLabelModel.cs │ │ │ ├── RotatedSliderLabelModelParameterExtension.cs │ │ │ ├── RotatingEdgeLabelModel.cs │ │ │ ├── RotatingEdgeLabelModelParameterExtension.cs │ │ │ ├── SideSliderEdgeLabelModel.cs │ │ │ ├── SideSliderLabelModelParameterExtension.cs │ │ │ ├── SimpleLabelStyleExtension.cs │ │ │ ├── SimplePortStyleExtension.cs │ │ │ ├── SliderEdgeLabelModel.cs │ │ │ ├── SliderLabelModelParameterExtension.cs │ │ │ ├── SliderParameterLocation.cs │ │ │ └── UIElementStyles.cs │ ├── GraphMLSimple │ │ ├── App.xaml │ │ ├── ExceptionDialog.xaml │ │ ├── ExceptionDialog.xaml.cs │ │ ├── GraphMLSimple.csproj │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ └── styles.graphml │ │ ├── SimpleGraphMLDemo.xaml │ │ └── SimpleGraphMLDemo.xaml.cs │ ├── GraphViewer │ │ ├── App.xaml │ │ ├── DescriptionWindow.xaml │ │ ├── DescriptionWindow.xaml.cs │ │ ├── GraphViewer.csproj │ │ ├── GraphViewerWindow.xaml │ │ ├── GraphViewerWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ ├── Icons_Computer.xaml │ │ │ ├── Icons_Movies.xaml │ │ │ ├── Icons_People.xaml │ │ │ ├── computer-network.graphml │ │ │ ├── family-tree.graphml │ │ │ ├── hierarchy.graphml │ │ │ ├── large-tree.graphml │ │ │ ├── movies.graphml │ │ │ ├── nesting.graphml │ │ │ ├── social-network.graphml │ │ │ └── uml-diagram.graphml │ │ ├── VectorNodeStyle.cs │ │ └── app.config │ ├── ImageExport │ │ ├── App.xaml │ │ ├── ExportRectanglePositionHandler.cs │ │ ├── ImageExport.csproj │ │ ├── ImageExport.resx │ │ ├── ImageExportWindow.xaml │ │ ├── ImageExportWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── LargeGraphs │ │ ├── Animations │ │ │ ├── CircleNodeAnimation.cs │ │ │ ├── CirclePanAnimation.cs │ │ │ └── ZoomInAndBackAnimation.cs │ │ ├── App.xaml │ │ ├── Descriptors.cs │ │ ├── LargeGraphs.csproj │ │ ├── LargeGraphsWindow.xaml │ │ ├── LargeGraphsWindow.xaml.cs │ │ ├── PerformanceSettings.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ │ ├── balloon_10000_9999.graphmlz │ │ │ ├── balloon_15000_14999.graphmlz │ │ │ ├── balloon_2000_1999.graphmlz │ │ │ ├── balloon_5000_4999.graphmlz │ │ │ ├── hierarchic_10000_11000.graphmlz │ │ │ ├── hierarchic_15000_16000.graphmlz │ │ │ ├── hierarchic_2000_2100.graphmlz │ │ │ └── hierarchic_5000_5100.graphmlz │ │ ├── Styles │ │ │ ├── Fast │ │ │ │ ├── FastEdgeStyle.cs │ │ │ │ └── FastLabelStyle.cs │ │ │ ├── LevelOfDetail │ │ │ │ ├── LevelOfDetailEdgeStyle.cs │ │ │ │ ├── LevelOfDetailLabelStyle.cs │ │ │ │ ├── LevelOfDetailNodeStyle.cs │ │ │ │ └── LevelOfDetailStyleContainer.cs │ │ │ ├── Selection │ │ │ │ ├── FastEdgeSelectionStyle.cs │ │ │ │ ├── FastLabelSelectionStyle.cs │ │ │ │ └── FastNodeSelectionStyle.cs │ │ │ ├── Virtualization │ │ │ │ ├── VirtualizationEdgeStyleDecorator.cs │ │ │ │ ├── VirtualizationLabelStyleDecorator.cs │ │ │ │ └── VirtualizationNodeStyleDecorator.cs │ │ │ ├── WrapperEdgeStyle.cs │ │ │ ├── WrapperLabelStyle.cs │ │ │ └── WrapperNodeStyle.cs │ │ └── app.config │ ├── Printing │ │ ├── App.xaml │ │ ├── ExportRectanglePositionHandler.cs │ │ ├── Printing.csproj │ │ ├── Printing.resx │ │ ├── PrintingWindow.xaml │ │ ├── PrintingWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ └── README.md │ ├── README.md │ ├── RenderPolicies │ │ ├── App.xaml │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── RenderPolicies.csproj │ │ ├── RenderPoliciesWindow.xaml │ │ └── RenderPoliciesWindow.xaml.cs │ ├── SimpleEditor │ │ ├── App.xaml │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── SimpleEditor.csproj │ │ ├── SimpleEditorWindow.xaml │ │ └── SimpleEditorWindow.xaml.cs │ ├── UIAutomation │ │ ├── App.xaml │ │ ├── App.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Styles.xaml │ │ ├── UIAutomation.csproj │ │ ├── UiAutomationDemoWindow.xaml │ │ └── UiAutomationDemoWindow.xaml.cs │ ├── Undo │ │ ├── App.xaml │ │ ├── GraphUndoWindow.xaml │ │ ├── GraphUndoWindow.xaml.cs │ │ ├── Properties │ │ │ └── licenses.licx │ │ ├── README.md │ │ └── Undo.csproj │ └── ZOrder │ │ ├── App.xaml │ │ ├── Properties │ │ └── licenses.licx │ │ ├── README.md │ │ ├── Resources │ │ └── zOrderGraph.graphml │ │ ├── ZOrder.csproj │ │ ├── ZOrderChangedEventArgs.cs │ │ ├── ZOrderNodePositionHandler.cs │ │ ├── ZOrderReparentHandler.cs │ │ ├── ZOrderSupport.cs │ │ ├── ZOrderWindow.xaml │ │ └── ZOrderWindow.xaml.cs └── yEd WPF │ ├── GraphEditor │ ├── App.xaml │ ├── Generators │ │ ├── RandomGraphGenerator.cs │ │ ├── RandomSupport.cs │ │ └── TreeGenerator.cs │ ├── GraphEditor.csproj │ ├── GraphEditorWindow.xaml │ ├── GraphEditorWindow.xaml.cs │ ├── I18N │ │ ├── DefaultOptionI18N.resX │ │ ├── DefaultStringResources.Designer.cs │ │ ├── DefaultStringResources.resx │ │ ├── DefaultsEditorI18N.resX │ │ ├── EdgePropertiesI18N.resX │ │ ├── ImageExportFormI18N.resx │ │ ├── LabelPropertiesI18N.resX │ │ └── NodePropertiesI18N.resX │ ├── Input │ │ ├── ConstrainedEdgeEndHandleProvider.cs │ │ ├── CustomOrthogonalEdgeHelper.cs │ │ ├── CustomPortCandidateProvider.cs │ │ ├── LabelInsetsProvider.cs │ │ └── LabelSizeConstraintProvider.cs │ ├── Modules │ │ ├── AbortDialog.xaml │ │ ├── AbortDialog.xaml.cs │ │ ├── BalloonLayoutModule.cs │ │ ├── BalloonLayoutModule.resx │ │ ├── BusRouterModule.cs │ │ ├── BusRouterModule.resx │ │ ├── ChannelEdgeRouterModule.cs │ │ ├── ChannelEdgeRouterModule.resX │ │ ├── CircularLayoutModule.cs │ │ ├── CircularLayoutModule.resx │ │ ├── CompactOrthogonalLayoutModule.cs │ │ ├── CompactOrthogonalLayoutModule.resX │ │ ├── ComponentLayoutModule.cs │ │ ├── ComponentLayoutModule.resx │ │ ├── GraphTransformerModule.cs │ │ ├── GraphTransformerModule.resx │ │ ├── HierarchicLayoutModule.cs │ │ ├── HierarchicLayoutModule.resx │ │ ├── LabelingModule.cs │ │ ├── LabelingModule.resx │ │ ├── LayoutModule.cs │ │ ├── ModuleForm.cs │ │ ├── ModuleForm.xaml │ │ ├── OrganicEdgeRouterModule.cs │ │ ├── OrganicEdgeRouterModule.resx │ │ ├── OrganicLayoutModule.cs │ │ ├── OrganicLayoutModule.resx │ │ ├── OrthogonalLayoutModule.cs │ │ ├── OrthogonalLayoutModule.resx │ │ ├── ParallelEdgeRouterModule.cs │ │ ├── ParallelEdgeRouterModule.resx │ │ ├── PartialLayoutModule.cs │ │ ├── PartialLayoutModule.resx │ │ ├── PolylineEdgeRouterModule.cs │ │ ├── PolylineEdgeRouterModule.resx │ │ ├── RadialLayoutModule.cs │ │ ├── RadialLayoutModule.resx │ │ ├── SeriesParallelLayoutModule.cs │ │ ├── SeriesParallelLayoutModule.resx │ │ ├── SmartOrganicLayoutModule.cs │ │ ├── SmartOrganicLayoutModule.resx │ │ ├── TreeLayoutModule.cs │ │ ├── TreeLayoutModule.resx │ │ └── YModule.cs │ ├── Properties │ │ ├── AssemblyInfo.cs │ │ ├── Settings.Designer.cs │ │ ├── Settings.cs │ │ ├── Settings.settings │ │ └── licenses.licx │ ├── README.md │ ├── Resources │ │ ├── Icons_Computer.xaml │ │ ├── Icons_Movies.xaml │ │ ├── Icons_People.xaml │ │ ├── Samples │ │ │ ├── computer-network.graphml │ │ │ ├── family-tree.graphml │ │ │ ├── hierarchy.graphml │ │ │ ├── large-tree.graphml │ │ │ ├── movies.graphml │ │ │ ├── nesting.graphml │ │ │ ├── social-network.graphml │ │ │ └── uml-diagram.graphml │ │ ├── defaults.graphml │ │ └── yWorks.png │ ├── Styles │ │ ├── ArcEdgeStyle.cs │ │ ├── BridgeEdgeStyle.cs │ │ ├── CirclePortStyle.cs │ │ ├── DynamicArrowEdgeStyleBase.cs │ │ ├── GroupNodeStyle.cs │ │ ├── LabelStyle.cs │ │ ├── PolylineEdgeStyle.cs │ │ └── VectorNodeStyle.cs │ ├── Support │ │ ├── EventFilter.cs │ │ ├── FileNameConverter.cs │ │ ├── FilteredMapper.cs │ │ ├── FontFamilyDomain.cs │ │ ├── ItemCollectionExtensions.cs │ │ └── ModuleNameConverter.cs │ ├── UI │ │ ├── AboutBox.xaml │ │ ├── AboutBox.xaml.cs │ │ ├── DefaultEdgeOptionBuilder.cs │ │ ├── DefaultLabelOptionBuilder.cs │ │ ├── DefaultNodeOptionBuilder.cs │ │ ├── DefaultPortOptionBuilder.cs │ │ ├── DefaultsEditor.cs │ │ ├── EdgeGroupConfigurator.cs │ │ ├── IGraphModule.cs │ │ ├── PenItemEditor.xaml │ │ ├── PenItemEditor.xaml.cs │ │ ├── PortConstraintsConfigurator.cs │ │ ├── RandomGraphGeneratorModule.cs │ │ ├── RandomGraphGeneratorModule.resx │ │ ├── StyleChooser.xaml │ │ ├── StyleChooser.xaml.cs │ │ ├── StylePalette.xaml │ │ ├── StylePalette.xaml.cs │ │ ├── StylePanel.cs │ │ ├── TreeGeneratorModule.cs │ │ └── TreeGeneratorModule.resx │ ├── app.config │ └── yFiles.ico │ └── README.md └── tutorials ├── 01 Getting Started ├── 01 Creating the View │ ├── 01 Creating the View.csproj │ ├── App.xaml │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── SampleApplication.cs │ └── SampleApplication.xaml ├── 02 Creating Graph Elements │ ├── 02 Creating Graph Elements.csproj │ ├── App.xaml │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── SampleApplication.cs │ └── SampleApplication.xaml ├── 03 Managing the Viewport │ ├── 03 Managing the Viewport.csproj │ ├── App.xaml │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── SampleApplication.cs │ └── SampleApplication.xaml ├── 04 Customizing Styles │ ├── 04 Customizing Styles.csproj │ ├── App.xaml │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── SampleApplication.cs │ └── SampleApplication.xaml ├── 05 Placing Labels │ ├── 05 Placing Labels.csproj │ ├── App.xaml │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── SampleApplication.cs │ └── SampleApplication.xaml ├── 06 Basic Interaction │ ├── 06 Basic Interaction.csproj │ ├── App.xaml │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── SampleApplication.cs │ └── SampleApplication.xaml ├── 07 Undo and Clipboard Support │ ├── 07 Undo and Clipboard Support.csproj │ ├── App.xaml │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── SampleApplication.cs │ └── SampleApplication.xaml ├── 08 Input and Output │ ├── 08 Input and Output.csproj │ ├── App.xaml │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── SampleApplication.cs │ └── SampleApplication.xaml ├── 09 Customizing Behavior │ ├── 09 Customizing Behavior.csproj │ ├── App.xaml │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── SampleApplication.cs │ └── SampleApplication.xaml ├── 10 Grouped Graphs │ ├── 10 Grouped Graphs.csproj │ ├── App.xaml │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── SampleApplication.cs │ └── SampleApplication.xaml ├── 11 Folding │ ├── 11 Folding.csproj │ ├── App.xaml │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── SampleApplication.cs │ └── SampleApplication.xaml ├── 12 Binding Data to Graph Elements │ ├── 12 Binding Data to Graph Elements.csproj │ ├── App.xaml │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── SampleApplication.cs │ └── SampleApplication.xaml ├── 13 GraphML IO for Custom Data │ ├── 13 GraphML IO for Custom Data.csproj │ ├── App.xaml │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── SampleApplication.cs │ └── SampleApplication.xaml ├── 14 Automatic Graph Layout │ ├── 14 Automatic Graph Layout.csproj │ ├── App.xaml │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── SampleApplication.cs │ ├── SampleApplication.xaml │ ├── app.config │ └── layout-sample.graphml ├── 15 Snapping │ ├── 15 Snapping.csproj │ ├── App.xaml │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── SampleApplication.cs │ └── SampleApplication.xaml ├── 16 Grid Snapping │ ├── 16 Grid Snapping.csproj │ ├── App.xaml │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── SampleApplication.cs │ └── SampleApplication.xaml ├── 17 Orthogonal Edge Creation │ ├── 17 Orthogonal Edge Creation.csproj │ ├── App.xaml │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── SampleApplication.cs │ └── SampleApplication.xaml └── README.md ├── 02 Custom Styles ├── 01 Custom Node Style │ ├── 01 Custom Node Style.csproj │ ├── App.xaml │ ├── MySimpleNodeStyle.cs │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── Resources │ │ └── edit_label.png │ ├── StyleApplication.xaml │ └── StyleApplication.xaml.cs ├── 02 Node Color │ ├── 02 Node Color.csproj │ ├── App.xaml │ ├── MySimpleNodeStyle.cs │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── StyleApplication.xaml │ └── StyleApplication.xaml.cs ├── 03 UpdateVisual and RenderDataCache │ ├── 03 UpdateVisual and RenderDataCache.csproj │ ├── App.xaml │ ├── MySimpleNodeStyle.cs │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── StyleApplication.xaml │ ├── StyleApplication.xaml.cs │ └── app.config ├── 04 IsInside │ ├── 04 IsInside.csproj │ ├── App.xaml │ ├── MySimpleNodeStyle.cs │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── StyleApplication.xaml │ └── StyleApplication.xaml.cs ├── 05 Hit Test │ ├── 05 Hit Test.csproj │ ├── App.xaml │ ├── MySimpleNodeStyle.cs │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── StyleApplication.xaml │ └── StyleApplication.xaml.cs ├── 06 GetBounds │ ├── 06 GetBounds.csproj │ ├── App.xaml │ ├── MySimpleNodeStyle.cs │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── StyleApplication.xaml │ └── StyleApplication.xaml.cs ├── 07 Dropshadow Performance │ ├── 07 Dropshadow Performance.csproj │ ├── App.xaml │ ├── MySimpleNodeStyle.cs │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── StyleApplication.xaml │ ├── StyleApplication.xaml.cs │ └── app.config ├── 08 Edge from Node to Label │ ├── 08 Edge from Node to Label.csproj │ ├── App.xaml │ ├── MySimpleNodeStyle.cs │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── StyleApplication.xaml │ └── StyleApplication.xaml.cs ├── 09 IsVisible │ ├── 09 IsVisible.csproj │ ├── App.xaml │ ├── MySimpleNodeStyle.cs │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── StyleApplication.xaml │ └── StyleApplication.xaml.cs ├── 10 Custom Label Style │ ├── 10 Custom Label Style.csproj │ ├── App.xaml │ ├── MySimpleLabelStyle.cs │ ├── MySimpleNodeStyle.cs │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── StyleApplication.xaml │ └── StyleApplication.xaml.cs ├── 11 Label Preferred Size │ ├── 11 Label Preferred Size.csproj │ ├── App.xaml │ ├── MySimpleLabelStyle.cs │ ├── MySimpleNodeStyle.cs │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── StyleApplication.xaml │ └── StyleApplication.xaml.cs ├── 12 High Performance Rendering of Label │ ├── 12 High Performance Rendering of Label.csproj │ ├── App.xaml │ ├── MySimpleLabelStyle.cs │ ├── MySimpleNodeStyle.cs │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── StyleApplication.xaml │ └── StyleApplication.xaml.cs ├── 13 Label Edit Button │ ├── 13 Label Edit Button.csproj │ ├── App.xaml │ ├── MySimpleLabelStyle.cs │ ├── MySimpleNodeStyle.cs │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── Resources │ │ └── edit_label.png │ ├── StyleApplication.xaml │ └── StyleApplication.xaml.cs ├── 14 Button Visibility │ ├── 14 Button Visibility.csproj │ ├── App.xaml │ ├── MySimpleLabelStyle.cs │ ├── MySimpleNodeStyle.cs │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── Resources │ │ └── edit_label.png │ ├── StyleApplication.xaml │ └── StyleApplication.xaml.cs ├── 15 Using Data in Label Tag │ ├── 15 Using Data in Label Tag.csproj │ ├── App.xaml │ ├── MySimpleLabelStyle.cs │ ├── MySimpleNodeStyle.cs │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── Resources │ │ └── edit_label.png │ ├── StyleApplication.xaml │ └── StyleApplication.xaml.cs ├── 16 Custom Edge Style │ ├── 16 Custom Edge Style.csproj │ ├── App.xaml │ ├── MySimpleEdgeStyle.cs │ ├── MySimpleLabelStyle.cs │ ├── MySimpleNodeStyle.cs │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── Resources │ │ └── edit_label.png │ ├── StyleApplication.xaml │ └── StyleApplication.xaml.cs ├── 17 Edge HitTest │ ├── 17 Edge HitTest.csproj │ ├── App.xaml │ ├── MySimpleEdgeStyle.cs │ ├── MySimpleLabelStyle.cs │ ├── MySimpleNodeStyle.cs │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── Resources │ │ └── edit_label.png │ ├── StyleApplication.xaml │ └── StyleApplication.xaml.cs ├── 18 Edge Cropping │ ├── 18 Edge Cropping.csproj │ ├── App.xaml │ ├── MySimpleEdgeStyle.cs │ ├── MySimpleLabelStyle.cs │ ├── MySimpleNodeStyle.cs │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── Resources │ │ └── edit_label.png │ ├── StyleApplication.xaml │ └── StyleApplication.xaml.cs ├── 19 Animated Edge Selection │ ├── 19 Animated Edge Selection.csproj │ ├── App.xaml │ ├── MySimpleEdgeStyle.cs │ ├── MySimpleLabelStyle.cs │ ├── MySimpleNodeStyle.cs │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── Resources │ │ └── edit_label.png │ ├── StyleApplication.xaml │ └── StyleApplication.xaml.cs ├── 20 Custom Arrow │ ├── 20 Custom Arrow.csproj │ ├── App.xaml │ ├── MySimpleArrow.cs │ ├── MySimpleEdgeStyle.cs │ ├── MySimpleLabelStyle.cs │ ├── MySimpleNodeStyle.cs │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── Resources │ │ └── edit_label.png │ ├── StyleApplication.xaml │ └── StyleApplication.xaml.cs ├── 21 Arrow Thickness │ ├── 21 Arrow Thickness.csproj │ ├── App.xaml │ ├── MySimpleArrow.cs │ ├── MySimpleEdgeStyle.cs │ ├── MySimpleLabelStyle.cs │ ├── MySimpleNodeStyle.cs │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── Resources │ │ └── edit_label.png │ ├── StyleApplication.xaml │ └── StyleApplication.xaml.cs ├── 22 Custom Ports │ ├── 22 Custom Ports.csproj │ ├── App.xaml │ ├── MySimpleArrow.cs │ ├── MySimpleEdgeStyle.cs │ ├── MySimpleLabelStyle.cs │ ├── MySimpleNodeStyle.cs │ ├── MySimplePortStyle.cs │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── Resources │ │ └── edit_label.png │ ├── StyleApplication.xaml │ └── StyleApplication.xaml.cs ├── 23 Style Decorator │ ├── 23 Style Decorator.csproj │ ├── App.xaml │ ├── MyNodeStyleDecorator.cs │ ├── MySimpleArrow.cs │ ├── MySimpleEdgeStyle.cs │ ├── MySimpleLabelStyle.cs │ ├── MySimpleNodeStyle.cs │ ├── MySimplePortStyle.cs │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── Resources │ │ └── edit_label.png │ ├── StyleApplication.xaml │ └── StyleApplication.xaml.cs ├── 24 Zoom Invariant Label Rendering │ ├── 24 Zoom Invariant Label Rendering.csproj │ ├── App.xaml │ ├── MySimpleArrow.cs │ ├── MySimpleEdgeStyle.cs │ ├── MySimpleLabelStyle.cs │ ├── MySimpleNodeStyle.cs │ ├── MySimplePortStyle.cs │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── StyleApplication.xaml │ ├── StyleApplication.xaml.cs │ └── ZoomInvariantLabelStyle.cs ├── 25 Bridge Support │ ├── 25 Bridge Support.csproj │ ├── App.xaml │ ├── MySimpleArrow.cs │ ├── MySimpleEdgeStyle.cs │ ├── MySimpleNodeStyle.cs │ ├── Properties │ │ └── licenses.licx │ ├── README.md │ ├── StyleApplication.xaml │ └── StyleApplication.xaml.cs └── README.md └── README.md /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve the demos 4 | 5 | --- 6 | 7 | **Delete this heading** 8 | Delete this heading to show that you have understood that this github repository is not meant to provide you with support regarding *your own* code. This bug report is meant to report an issue with the unmodified sources that are part of *this* project and not part of the yFiles library. 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Additional context** 27 | Add any other context about the problem here. 28 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for an existing or a new demo 4 | 5 | --- 6 | 7 | **Delete this heading** 8 | Delete this heading to show that you have understood that this github repository is not meant to provide to collect feature requests for the yFiles library but only to collect feature requests regarding demos in this repository. This feature request is meant to request an improvement for an existing or as an idea for a new demo that uses the yFiles library. 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/support-request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Support Request 3 | about: Request support for help with the demos 4 | 5 | --- 6 | 7 | **Delete this heading** 8 | Delete this heading to show that you have understood that this github repository is not meant to provide you with support regarding *your own* code or questions that come up during your evaluation of the yFiles libraries. Support requests will be deleted from the issue tracker. If you require support, contact the yFiles support team using the methods described in the evaluation package. 9 | 10 | **What kind of help with the demos do you need** 11 | If this is a bug report or feature request, please use the other templates. If you need help with the exact files in this repository which only affects the files here and not the (identical) ones in the evaluation package, feel free to provide more information here: 12 | 13 | **Is your support request related to a problem? Please describe.** 14 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 15 | 16 | **Describe the solution you'd like** 17 | A clear and concise description of what you want to happen. 18 | 19 | **Describe alternatives you've considered** 20 | A clear and concise description of any alternative solutions or features you've considered. 21 | 22 | **Additional context** 23 | Add any other context or screenshots about the feature request here. 24 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | These demo files are part of yFiles for WPF 3.2. 2 | https://www.yworks.com/products/yfiles-wpf 3 | Copyright (c) 2000-2019 by yWorks GmbH, Vor dem Kreuzberg 28, 4 | 72070 Tuebingen, Germany. All rights reserved. 5 | 6 | yFiles demo files exhibit yFiles for WPF functionalities. Any redistribution 7 | of demo files in source code or binary form, with or without 8 | modification, is not permitted. 9 | 10 | Owners of a valid software license for a yFiles for WPF version 11 | are allowed to use these demo sources as basis 12 | for their own yFiles for WPF-powered applications. Use of such programs is 13 | governed by the rights and conditions as set out in the yFiles for WPF 14 | license agreement. 15 | 16 | THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESS OR IMPLIED 17 | WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 18 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN 19 | NO EVENT SHALL yWorks BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 20 | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 21 | TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 22 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 23 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 24 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # yFiles for WPF Demo Sources 2 | 3 | This repository contains source code demos that use the commercial [yFiles for WPF](https://www.yworks.com/products/yfiles-wpf) software programming library for the visualization of graphs, diagrams, and networks. The library itself is __*not*__ part of this repository. 4 | 5 | [![yFiles for WPF Demos](./demo-grid.png)](https://live.yworks.com/yfiles-for-html) 6 | 7 | # Running the Demos 8 | 9 | For most of these demos equivalent ones based on [yFiles for HTML](https://www.yworks.com/yfileshtml) 10 | are hosted [online here](https://live.yworks.com/yfiles-for-html) for everyone to play with. Developers should [evaluate the library](https://www.yworks.com/products/yfiles-wpf/evaluate), instead. 11 | The evaluation version also contains these demos and the necessary library to execute the code. 12 | 13 | # License 14 | 15 | Use of the software hosted in this repository is subject to the license terms of the corresponding yFiles for WPF license. 16 | Owners of a valid software license for a yFiles for WPF version that these 17 | demos are shipped with are allowed to use the demo source code as basis 18 | for their own yFiles for WPF-powered applications. Use of such programs is 19 | governed by the rights and conditions as set out in the yFiles for WPF 20 | license agreement. More details [here](./LICENSE). If in doubt, feel free to [contact](https://www.yworks.com/contact) the yFiles for WPF support team. 21 | -------------------------------------------------------------------------------- /demo-grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demo-grid.png -------------------------------------------------------------------------------- /demos/BPMN/BpmnDi/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/BPMN/BpmnDi/Properties/AssemblyInfo.cs -------------------------------------------------------------------------------- /demos/BPMN/BpmnDi/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/BPMN/BpmnDi/README.md: -------------------------------------------------------------------------------- 1 | # BpmnDi 2 | 3 | Library project containing a parser for BPMN 2.0 abstract syntax. 4 | -------------------------------------------------------------------------------- /demos/BPMN/BpmnEditor/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/BPMN/BpmnEditor/README.md: -------------------------------------------------------------------------------- 1 | # BpmnEditor 2 | 3 | A business process diagram editor demo application. This demo features customized node and edge styles that 4 | can be used for BPMN diagrams, as well as a custom layout algorithm specifically tailored for BPMN requirements. 5 | In addition, working with BPMN pool nodes is shown. 6 | -------------------------------------------------------------------------------- /demos/BPMN/BpmnEditor/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/BPMN/BpmnLayout/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 2 | 3 | -------------------------------------------------------------------------------- /demos/BPMN/BpmnLayout/README.md: -------------------------------------------------------------------------------- 1 | # BpmnLayout 2 | 3 | Library project containing a layout algorithm implementation that is customized for BPMN type layouts. 4 | -------------------------------------------------------------------------------- /demos/BPMN/BpmnView/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/BPMN/BpmnView/Properties/AssemblyInfo.cs -------------------------------------------------------------------------------- /demos/BPMN/BpmnView/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/BPMN/BpmnView/README.md: -------------------------------------------------------------------------------- 1 | # BpmnView 2 | 3 | Library project containing custom styles and other view related support classes for BPMN. 4 | -------------------------------------------------------------------------------- /demos/BPMN/README.md: -------------------------------------------------------------------------------- 1 | 2 | # BPMN Demos 3 | These source code samples demonstrate how to implement BPMN layout and editing features. 4 | 5 | You will find the following programming samples in this package: 6 | 7 | 8 | | Name | Description | 9 | |:---|:---| 10 | |**BpmnDi** | Library project containing a parser for BPMN 2.0 abstract syntax. | 11 | |**BpmnEditor** | A business process diagram editor demo application. This demo features customized node and edge styles that can be used for BPMN diagrams, as well as a custom layout algorithm specifically tailored for BPMN requirements. In addition, working with BPMN pool nodes is shown. | 12 | |**BpmnLayout** | Library project containing a layout algorithm implementation that is customized for BPMN type layouts. | 13 | |**BpmnView** | Library project containing custom styles and other view related support classes for BPMN. | 14 | 15 | ## Running the Demos 16 | 17 | ### With Visual Studio 18 | 19 | * To load all samples into Visual Studio you can simply open the solution file yFiles Demos.sln. 20 | * To load a single sample into Visual Studio you can open the project file (.csproj) in the sample's directory. 21 | 22 | 23 | 24 | 25 | #### See also 26 | [Product Page](https://www.yworks.com/products/yfileswpf) 27 | [API Documentation](https://docs.yworks.com/yfileswpf) 28 | [Help and Support](https://www.yworks.com/products/yfiles/support) 29 | 30 | 31 | #### Contact 32 | yWorks GmbH 33 | Vor dem Kreuzberg 28 34 | 72070 Tuebingen 35 | Germany 36 | Phone: +49 7071 979050 37 | Email: contact@yworks.com 38 | 39 | COPYRIGHT © 2021 yWorks 40 | 41 | 42 | -------------------------------------------------------------------------------- /demos/Compatibility/Compatibility/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Compatibility/Compatibility/README.md: -------------------------------------------------------------------------------- 1 | # Compatibility 2 | 3 | Support project to facilitate migration from yFiles WPF 2.5 to yFiles WPF 3.0. 4 | Provides extension methods which mimic removed or changed methods. 5 | -------------------------------------------------------------------------------- /demos/Compatibility/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Compatibility Classes 3 | Support project to facilitate migration from yFiles WPF 2.5 to yFiles WPF 3.0. 4 | 5 | You will find the following programming samples in this package: 6 | 7 | 8 | | Name | Description | 9 | |:---|:---| 10 | |**Compatibility** | Support project to facilitate migration from yFiles WPF 2.5 to yFiles WPF 3.0. | 11 | 12 | ## Running the Demos 13 | 14 | ### With Visual Studio 15 | 16 | * To load all samples into Visual Studio you can simply open the solution file yFiles Demos.sln. 17 | * To load a single sample into Visual Studio you can open the project file (.csproj) in the sample's directory. 18 | 19 | 20 | 21 | 22 | #### See also 23 | [Product Page](https://www.yworks.com/products/yfileswpf) 24 | [API Documentation](https://docs.yworks.com/yfileswpf) 25 | [Help and Support](https://www.yworks.com/products/yfiles/support) 26 | 27 | 28 | #### Contact 29 | yWorks GmbH 30 | Vor dem Kreuzberg 28 31 | 72070 Tuebingen 32 | Germany 33 | Phone: +49 7071 979050 34 | Email: contact@yworks.com 35 | 36 | COPYRIGHT © 2021 yWorks 37 | 38 | 39 | -------------------------------------------------------------------------------- /demos/Complete/AggregateGraphWrapper/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Complete/AggregateGraphWrapper/README.md: -------------------------------------------------------------------------------- 1 | # AggregateGraphWrapper 2 | 3 | The demo makes use of the AggregateGraphWrapper class, that allows for aggregating graph items by hiding items 4 | and adding new items to a wrapped graph. 5 | -------------------------------------------------------------------------------- /demos/Complete/BasicLayout/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Complete/BasicLayout/README.md: -------------------------------------------------------------------------------- 1 | # BasicLayout 2 | 3 | Shows how to use important layout and routing algorithms to calculate coordinates 4 | for a graph. Featured layout and routing styles are Organic, Orthogonal (Router), 5 | Orthogonal (Layout), Circular, and Hierarchical. 6 | -------------------------------------------------------------------------------- /demos/Complete/BasicLayout/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/Complete/Collapse/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Complete/Collapse/README.md: -------------------------------------------------------------------------------- 1 | # Collapse 2 | 3 | A form that demonstrates the wrapping and decorating of `IGraph` instances. 4 | 5 | 6 | This demo shows a collapsible tree structure. Subtrees can be collapsed or expanded 7 | by clicking on their root nodes. 8 | -------------------------------------------------------------------------------- /demos/Complete/Collapse/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/Complete/ComponentDragAndDrop/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Complete/ComponentDragAndDrop/README.md: -------------------------------------------------------------------------------- 1 | # ComponentDragAndDrop 2 | 3 | A demo that shows how to make space for components by dragging them from a DnD palette onto the canvas using the ClearAreaLayout algorithm. 4 | -------------------------------------------------------------------------------- /demos/Complete/ComponentDragAndDrop/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/Complete/FillAreaAfterDeletion/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Complete/FillAreaAfterDeletion/README.md: -------------------------------------------------------------------------------- 1 | # FillAreaAfterDeletion 2 | 3 | A demo that shows how to fill free space after deleting nodes using the FillAreaLayout algorithm. 4 | -------------------------------------------------------------------------------- /demos/Complete/FillAreaAfterDeletion/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/Complete/GraphAnalysis/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Complete/GraphAnalysis/README.md: -------------------------------------------------------------------------------- 1 | # GraphAnalysis 2 | 3 | Demonstrates the most important graph analysis algorithms from the Layout and Analysis part of yFiles WPF. 4 | -------------------------------------------------------------------------------- /demos/Complete/GraphAnalysis/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/Complete/HierarchicGrouping/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Complete/HierarchicGrouping/README.md: -------------------------------------------------------------------------------- 1 | # HierarchicGrouping 2 | 3 | A demo that demonstrates how to automatically trigger an incremental layout when opening or closing groups. 4 | -------------------------------------------------------------------------------- /demos/Complete/HierarchicGrouping/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/Complete/InteractiveClearArea/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Complete/InteractiveClearArea/README.md: -------------------------------------------------------------------------------- 1 | # InteractiveClearArea 2 | 3 | A demo that shows how to interactively move graph elements within a rectangular area in a given graph layout so that the modifications in the graph are minimal. 4 | -------------------------------------------------------------------------------- /demos/Complete/InteractiveClearArea/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/Complete/IsometricDrawing/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 2 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 4 | 5 | -------------------------------------------------------------------------------- /demos/Complete/IsometricDrawing/README.md: -------------------------------------------------------------------------------- 1 | # IsometricDrawing 2 | 3 | Sample application that displays graphs in an isometric fashion to create an impression of a 3-dimensional view. 4 | -------------------------------------------------------------------------------- /demos/Complete/LargeGraphAggregation/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 2 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 4 | 5 | -------------------------------------------------------------------------------- /demos/Complete/LargeGraphAggregation/README.md: -------------------------------------------------------------------------------- 1 | # LargeGraphAggregation 2 | 3 | This demo shows how to use the smart NodeAggregation algorithm for drill down exploration of a large graph. 4 | The algorithms consolidates nodes of a graph and thus creates cluster of nodes based on user-specified constraints. 5 | -------------------------------------------------------------------------------- /demos/Complete/LargeGraphAggregation/Resources/SampleGraph.graphmlz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Complete/LargeGraphAggregation/Resources/SampleGraph.graphmlz -------------------------------------------------------------------------------- /demos/Complete/LargeGraphAggregation/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /demos/Complete/LogicGate/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Complete/LogicGate/README.md: -------------------------------------------------------------------------------- 1 | # LogicGate 2 | 3 | This demo shows how ports can be used to implement a digital system comprising logic gates and similar components. 4 | Each node in this system has specific ports for incoming and outgoing edges. 5 | To achieve this, Port Constraints are used as a mechanism to force layout algorithms to respect port locations and edge directions. 6 | -------------------------------------------------------------------------------- /demos/Complete/LogicGate/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/Complete/Neo4JIntegration/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /demos/Complete/Neo4JIntegration/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Complete/Neo4JIntegration/Properties/AssemblyInfo.cs -------------------------------------------------------------------------------- /demos/Complete/Neo4JIntegration/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /demos/Complete/Neo4JIntegration/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 2 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 4 | 5 | -------------------------------------------------------------------------------- /demos/Complete/Neo4JIntegration/README.md: -------------------------------------------------------------------------------- 1 | # Neo4JIntegration 2 | 3 | This demo shows how to load data from a Neo4j database and display it with yFiles WPF. 4 | It uses the Neo4j.Driver library to submit queries to a Neo4j database and to parse the results. 5 | -------------------------------------------------------------------------------- /demos/Complete/NetworkMonitoring/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Complete/NetworkMonitoring/README.md: -------------------------------------------------------------------------------- 1 | # NetworkMonitoring 2 | 3 | This demo shows a basic network monitoring tool. 4 | You can watch the traffic flowing through the network and even 5 | influence the network by deactivating nodes. 6 | -------------------------------------------------------------------------------- /demos/Complete/NetworkMonitoring/Simulator/NetworkSimulator.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Complete/NetworkMonitoring/Simulator/NetworkSimulator.cs -------------------------------------------------------------------------------- /demos/Complete/NetworkMonitoring/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/Complete/OrgChart/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Complete/OrgChart/README.md: -------------------------------------------------------------------------------- 1 | # OrgChart 2 | 3 | An organization chart demo. 4 | -------------------------------------------------------------------------------- /demos/Complete/OrgChart/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/Complete/OrgChart/resources/usericon_female1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Complete/OrgChart/resources/usericon_female1.png -------------------------------------------------------------------------------- /demos/Complete/OrgChart/resources/usericon_female1_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Complete/OrgChart/resources/usericon_female1_16.png -------------------------------------------------------------------------------- /demos/Complete/OrgChart/resources/usericon_female2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Complete/OrgChart/resources/usericon_female2.png -------------------------------------------------------------------------------- /demos/Complete/OrgChart/resources/usericon_female3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Complete/OrgChart/resources/usericon_female3.png -------------------------------------------------------------------------------- /demos/Complete/OrgChart/resources/usericon_male1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Complete/OrgChart/resources/usericon_male1.png -------------------------------------------------------------------------------- /demos/Complete/OrgChart/resources/usericon_male2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Complete/OrgChart/resources/usericon_male2.png -------------------------------------------------------------------------------- /demos/Complete/OrgChart/resources/usericon_male3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Complete/OrgChart/resources/usericon_male3.png -------------------------------------------------------------------------------- /demos/Complete/OverlapAvoidingEditor/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Complete/OverlapAvoidingEditor/README.md: -------------------------------------------------------------------------------- 1 | # OverlapAvoidingEditor 2 | 3 | A demo that shows how to interactively move or resize nodes in a graph without creating overlaps. 4 | -------------------------------------------------------------------------------- /demos/Complete/OverlapAvoidingEditor/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/Complete/RelocateSubtree/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Complete/RelocateSubtree/README.md: -------------------------------------------------------------------------------- 1 | # RelocateSubtree 2 | 3 | A demo that shows how to interactively relocate subtrees from one parent to another using ClearAreaLayout to make space at the desired location. 4 | -------------------------------------------------------------------------------- /demos/Complete/RelocateSubtree/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/Complete/RotatableNodes/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /demos/Complete/RotatableNodes/CachingOrientedRectangle.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Complete/RotatableNodes/CachingOrientedRectangle.cs -------------------------------------------------------------------------------- /demos/Complete/RotatableNodes/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | ** 3 | ** This demo file is part of yFiles WPF 3.6. 4 | ** Copyright (c) 2000-2024 by yWorks GmbH, Vor dem Kreuzberg 28, 5 | ** 72070 Tuebingen, Germany. All rights reserved. 6 | ** 7 | ** yFiles demo files exhibit yFiles WPF functionalities. Any redistribution 8 | ** of demo files in source code or binary form, with or without 9 | ** modification, is not permitted. 10 | ** 11 | ** Owners of a valid software license for a yFiles WPF version that this 12 | ** demo is shipped with are allowed to use the demo source code as basis 13 | ** for their own yFiles WPF powered applications. Use of such programs is 14 | ** governed by the rights and conditions as set out in the yFiles WPF 15 | ** license agreement. 16 | ** 17 | ** THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESS OR IMPLIED 18 | ** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | ** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN 20 | ** NO EVENT SHALL yWorks BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21 | ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 22 | ** TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 23 | ** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | ** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 25 | ** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | ** 28 | ***************************************************************************/ 29 | 30 | using System.Windows.Markup; 31 | 32 | [assembly: XmlnsDefinition("http://www.yworks.com/yFilesWPF/demos/RotatableNodes/1.0", "Demo.yFiles.Complete.RotatableNodes")] 33 | [assembly: XmlnsPrefix("http://www.yworks.com/yFilesWPF/demos/RotatableNodes/1.0", "demo")] 34 | -------------------------------------------------------------------------------- /demos/Complete/RotatableNodes/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 2 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 4 | 5 | -------------------------------------------------------------------------------- /demos/Complete/RotatableNodes/README.md: -------------------------------------------------------------------------------- 1 | # RotatableNodes 2 | 3 | This demo shows how support for rotated node visualizations can be implemented on top of the yFiles library. 4 | 5 | 6 | A custom yWorks.Graph.Styles.INodeStyle implementation is used to encapsulate most of the added functionality. 7 | -------------------------------------------------------------------------------- /demos/Complete/RotatableNodes/Resources/rotate.cur: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Complete/RotatableNodes/Resources/rotate.cur -------------------------------------------------------------------------------- /demos/Complete/ShortestPath/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Complete/ShortestPath/README.md: -------------------------------------------------------------------------------- 1 | # ShortestPath 2 | 3 | Shows how to use shortest path algorithms from the Layout and Analysis part of yFiles WPF. 4 | -------------------------------------------------------------------------------- /demos/Complete/ShortestPath/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/Complete/TableEditor/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Complete/TableEditor/Properties/AssemblyInfo.cs -------------------------------------------------------------------------------- /demos/Complete/TableEditor/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /demos/Complete/TableEditor/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Complete/TableEditor/README.md: -------------------------------------------------------------------------------- 1 | # TableEditor 2 | 3 | This demo shows how to use and manipulate `ITable` instances. 4 | 5 | 6 | We show how table nodes can be interactive manipulated (e.g. how to resize or reparent stripes, use drag and drop for stripes, change stripe labels etc.). Also 7 | interaction with the layout engine is shown. 8 | -------------------------------------------------------------------------------- /demos/Complete/TableEditor/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/DataBinding/AdjacencyGraphBuilder/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/DataBinding/AdjacencyGraphBuilder/Properties/AssemblyInfo.cs -------------------------------------------------------------------------------- /demos/DataBinding/AdjacencyGraphBuilder/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 2 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 4 | 5 | -------------------------------------------------------------------------------- /demos/DataBinding/AdjacencyGraphBuilder/README.md: -------------------------------------------------------------------------------- 1 | # AdjacencyGraphBuilder 2 | 3 | Demonstrates data binding using class `AdjacencyGraphBuilder`. 4 | -------------------------------------------------------------------------------- /demos/DataBinding/BusinessModelAdapter/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/DataBinding/BusinessModelAdapter/Properties/AssemblyInfo.cs -------------------------------------------------------------------------------- /demos/DataBinding/BusinessModelAdapter/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/DataBinding/BusinessModelAdapter/README.md: -------------------------------------------------------------------------------- 1 | # BusinessModelAdapter 2 | 3 | Shows how to integrate a custom Business Model with yFiles WPF. 4 | -------------------------------------------------------------------------------- /demos/DataBinding/DataSet/AdventureWorksEmployees.xsc: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /demos/DataBinding/DataSet/AdventureWorksEmployees.xss: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /demos/DataBinding/DataSet/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/DataBinding/DataSet/Properties/AssemblyInfo.cs -------------------------------------------------------------------------------- /demos/DataBinding/DataSet/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /demos/DataBinding/DataSet/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/DataBinding/DataSet/README.md: -------------------------------------------------------------------------------- 1 | # DataSet 2 | 3 | Sample Form that demonstrates data binding using a `TreeSource` to a DataSet. 4 | -------------------------------------------------------------------------------- /demos/DataBinding/DataSet/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/DataBinding/Dynamic/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/DataBinding/Dynamic/README.md: -------------------------------------------------------------------------------- 1 | # Dynamic 2 | 3 | Sample Form that demonstrates data binding using a `TreeSource` to dynamic business data. 4 | -------------------------------------------------------------------------------- /demos/DataBinding/Dynamic/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/DataBinding/GraphBuilder/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/DataBinding/GraphBuilder/Properties/AssemblyInfo.cs -------------------------------------------------------------------------------- /demos/DataBinding/GraphBuilder/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 2 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 4 | 5 | -------------------------------------------------------------------------------- /demos/DataBinding/GraphBuilder/README.md: -------------------------------------------------------------------------------- 1 | # GraphBuilder 2 | 3 | Demonstrates data binding using class `GraphBuilder`. 4 | -------------------------------------------------------------------------------- /demos/DataBinding/GraphSource/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/DataBinding/GraphSource/Properties/AssemblyInfo.cs -------------------------------------------------------------------------------- /demos/DataBinding/GraphSource/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/DataBinding/GraphSource/README.md: -------------------------------------------------------------------------------- 1 | # GraphSource 2 | 3 | Demonstrates data binding using class `GraphSource`. 4 | -------------------------------------------------------------------------------- /demos/DataBinding/GraphSource/Resources/classesmodel.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /demos/DataBinding/GraphSource/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/DataBinding/InteractiveEdgesGraphSource/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/DataBinding/InteractiveEdgesGraphSource/Properties/AssemblyInfo.cs -------------------------------------------------------------------------------- /demos/DataBinding/InteractiveEdgesGraphSource/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/DataBinding/InteractiveEdgesGraphSource/README.md: -------------------------------------------------------------------------------- 1 | # InteractiveEdgesGraphSource 2 | 3 | Demonstrates data binding using class `AdjacentEdgesGraphSource`. 4 | Allows interactive changes to the data model and dynamically updates the graph structure accordingly. 5 | -------------------------------------------------------------------------------- /demos/DataBinding/InteractiveEdgesGraphSource/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/DataBinding/InteractiveNodesGraphSource/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/DataBinding/InteractiveNodesGraphSource/Properties/AssemblyInfo.cs -------------------------------------------------------------------------------- /demos/DataBinding/InteractiveNodesGraphSource/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/DataBinding/InteractiveNodesGraphSource/README.md: -------------------------------------------------------------------------------- 1 | # InteractiveNodesGraphSource 2 | 3 | Demonstrates data binding using class `AdjacentNodesGraphSource`. 4 | Allows interactive changes to the data model and dynamically updates the graph structure accordingly. 5 | -------------------------------------------------------------------------------- /demos/DataBinding/InteractiveNodesGraphSource/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/DataBinding/README.md: -------------------------------------------------------------------------------- 1 | 2 | # Data Binding Demos 3 | These source code samples demonstrate how to use the `TreeSource` and `GraphSource` classes for binding graph elements to business data in yFiles WPF. 4 | 5 | You will find the following programming samples in this package: 6 | 7 | 8 | | Name | Description | 9 | |:---|:---| 10 | |**AdjacencyGraphBuilder** | Demonstrates data binding using class `AdjacencyGraphBuilder`. | 11 | |**BusinessModelAdapter** | Shows how to integrate a custom Business Model with yFiles WPF. | 12 | |**DataSet** | Sample Form that demonstrates data binding using a `TreeSource` to a DataSet. | 13 | |**Dynamic** | Sample Form that demonstrates data binding using a `TreeSource` to dynamic business data. | 14 | |**GraphBuilder** | Demonstrates data binding using class `GraphBuilder`. | 15 | |**GraphSource** | Demonstrates data binding using class `GraphSource`. | 16 | |**InteractiveEdgesGraphSource** | Demonstrates data binding using class `AdjacentEdgesGraphSource`. Allows interactive changes to the data model and dynamically updates the graph structure accordingly. | 17 | |**InteractiveNodesGraphSource** | Demonstrates data binding using class `AdjacentNodesGraphSource`. Allows interactive changes to the data model and dynamically updates the graph structure accordingly. | 18 | 19 | ## Running the Demos 20 | 21 | ### With Visual Studio 22 | 23 | * To load all samples into Visual Studio you can simply open the solution file yFiles Demos.sln. 24 | * To load a single sample into Visual Studio you can open the project file (.csproj) in the sample's directory. 25 | 26 | 27 | 28 | 29 | #### See also 30 | [Product Page](https://www.yworks.com/products/yfileswpf) 31 | [API Documentation](https://docs.yworks.com/yfileswpf) 32 | [Help and Support](https://www.yworks.com/products/yfiles/support) 33 | 34 | 35 | #### Contact 36 | yWorks GmbH 37 | Vor dem Kreuzberg 28 38 | 72070 Tuebingen 39 | Germany 40 | Phone: +49 7071 979050 41 | Email: contact@yworks.com 42 | 43 | COPYRIGHT © 2021 yWorks 44 | 45 | 46 | -------------------------------------------------------------------------------- /demos/Input/ContextMenu/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Input/ContextMenu/README.md: -------------------------------------------------------------------------------- 1 | # ContextMenu 2 | 3 | Demo code that shows how to customize the `ContextMenu` behavior of `GraphEditorInputMode`'s `MainInputMode.ContextMenuInputMode` 4 | elegantly. 5 | -------------------------------------------------------------------------------- /demos/Input/CustomLabelModel/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Input/CustomLabelModel/README.md: -------------------------------------------------------------------------------- 1 | # CustomLabelModel 2 | 3 | This demo show how to create and use a custom `ILabelModel`. 4 | -------------------------------------------------------------------------------- /demos/Input/CustomPortModel/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Input/CustomPortModel/README.md: -------------------------------------------------------------------------------- 1 | # CustomPortModel 2 | 3 | This demo show how to create and use a custom `IPortLocationModel`. 4 | -------------------------------------------------------------------------------- /demos/Input/CustomSnapping/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Input/CustomSnapping/README.md: -------------------------------------------------------------------------------- 1 | # CustomSnapping 2 | 3 | This demo shows how to customize `SnapLine` behaviour. 4 | -------------------------------------------------------------------------------- /demos/Input/DragAndDrop/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Input/DragAndDrop/README.md: -------------------------------------------------------------------------------- 1 | # DragAndDrop 2 | 3 | This demo shows how to use Drag and Drop together with `SnapLine` behaviour. 4 | Also a preview of the dropped node is showcased and how a node palette could be implemented. 5 | -------------------------------------------------------------------------------- /demos/Input/EdgeReconnection/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Input/EdgeReconnection/README.md: -------------------------------------------------------------------------------- 1 | # EdgeReconnection 2 | 3 | Demo code that shows how to customize the reconnection behavior for existing edges 4 | in the graph by implementing a custom `IEdgePortCandidateProvider`. 5 | -------------------------------------------------------------------------------- /demos/Input/HandleProvider/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Input/HandleProvider/README.md: -------------------------------------------------------------------------------- 1 | # HandleProvider 2 | 3 | Demo code that shows how to implement interactive resizing of labels with an 4 | `HandleProvider`. 5 | -------------------------------------------------------------------------------- /demos/Input/LabelEditing/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Input/LabelEditing/README.md: -------------------------------------------------------------------------------- 1 | # LabelEditing 2 | 3 | Demo that shows how to customize label editing. 4 | -------------------------------------------------------------------------------- /demos/Input/LensInputMode/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Input/LensInputMode/README.md: -------------------------------------------------------------------------------- 1 | # LensInputMode 2 | 3 | This demo shows how to use a specialized LensInputMode to display the part of 4 | the graph the pointer is hovering over in a kind of magnifying glass. 5 | -------------------------------------------------------------------------------- /demos/Input/MoveUnselectedNodes/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Input/MoveUnselectedNodes/README.md: -------------------------------------------------------------------------------- 1 | # MoveUnselectedNodes 2 | 3 | Demo code that shows how to use the modified input mode created by `GraphEditorInputMode.CreateMoveUnselectedInputMode`. 4 | -------------------------------------------------------------------------------- /demos/Input/NodeGroupResizing/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Input/NodeGroupResizing/README.md: -------------------------------------------------------------------------------- 1 | # NodeGroupResizing 2 | 3 | This demo shows how to reshape a group of nodes as one unit. 4 | -------------------------------------------------------------------------------- /demos/Input/OrthogonalEdges/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Input/OrthogonalEdges/README.md: -------------------------------------------------------------------------------- 1 | # OrthogonalEdges 2 | 3 | This demo shows the orthogonal edge editing features in yFiles WPF. 4 | -------------------------------------------------------------------------------- /demos/Input/PortCandidateProvider/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Input/PortCandidateProvider/README.md: -------------------------------------------------------------------------------- 1 | # PortCandidateProvider 2 | 3 | Demo code that shows how to customize the port relocation feature by implementing 4 | a custom `IPortCandidateProvider`. 5 | -------------------------------------------------------------------------------- /demos/Input/PositionHandler/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Input/PositionHandler/README.md: -------------------------------------------------------------------------------- 1 | # PositionHandler 2 | 3 | Demo code that shows how to customize the movement behavior of INodes by implementing 4 | a custom `IPositionHandler`. 5 | -------------------------------------------------------------------------------- /demos/Input/ReparentHandler/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Input/ReparentHandler/README.md: -------------------------------------------------------------------------------- 1 | # ReparentHandler 2 | 3 | Demo code that shows how to customize the reparent gesture in a `IGroupedGraph` 4 | by implementing a custom `IReparentNodeHandler`. 5 | -------------------------------------------------------------------------------- /demos/Input/ReshapeHandleProvider/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Input/ReshapeHandleProvider/README.md: -------------------------------------------------------------------------------- 1 | # ReshapeHandleProvider 2 | 3 | Demo code that shows how to implement a custom `IReshapeHandleProvider` for `IPort`s using a `NodeStylePortStyleAdapter`. 4 | -------------------------------------------------------------------------------- /demos/Input/ReshapeHandleProviderConfiguration/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Input/ReshapeHandleProviderConfiguration/README.md: -------------------------------------------------------------------------------- 1 | # ReshapeHandleProviderConfiguration 2 | 3 | Demo code that shows how to customize the resize behavior of INodes by implementing 4 | a custom `IReshapeHandleProvider`. 5 | -------------------------------------------------------------------------------- /demos/Input/SingleSelection/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Input/SingleSelection/README.md: -------------------------------------------------------------------------------- 1 | # SingleSelection 2 | 3 | Demo code that shows how to configure `GraphEditorInputMode` to only allow one 4 | graph item to be selected at a time. 5 | -------------------------------------------------------------------------------- /demos/Input/SizeConstraintProvider/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Input/SizeConstraintProvider/README.md: -------------------------------------------------------------------------------- 1 | # SizeConstraintProvider 2 | 3 | Demo code that shows how to customize the resizing behavior of INodes by implementing 4 | a custom `ISizeConstraintProvider<T>`. 5 | -------------------------------------------------------------------------------- /demos/Input/SnapLines/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Input/SnapLines/README.md: -------------------------------------------------------------------------------- 1 | # SnapLines 2 | 3 | This demo shows how to use the `SnapLine` feature in yFiles WPF. 4 | -------------------------------------------------------------------------------- /demos/Layout/AbortHandler/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Layout/AbortHandler/README.md: -------------------------------------------------------------------------------- 1 | # AbortHandler 2 | 3 | This demo shows how to use an `AbortHandler` to abort 4 | layout algorithms running in a separate thread. 5 | -------------------------------------------------------------------------------- /demos/Layout/AbortHandler/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/Layout/BusRouter/App.xaml.cs: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | ** 3 | ** This demo file is part of yFiles WPF 3.6. 4 | ** Copyright (c) 2000-2024 by yWorks GmbH, Vor dem Kreuzberg 28, 5 | ** 72070 Tuebingen, Germany. All rights reserved. 6 | ** 7 | ** yFiles demo files exhibit yFiles WPF functionalities. Any redistribution 8 | ** of demo files in source code or binary form, with or without 9 | ** modification, is not permitted. 10 | ** 11 | ** Owners of a valid software license for a yFiles WPF version that this 12 | ** demo is shipped with are allowed to use the demo source code as basis 13 | ** for their own yFiles WPF powered applications. Use of such programs is 14 | ** governed by the rights and conditions as set out in the yFiles WPF 15 | ** license agreement. 16 | ** 17 | ** THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESS OR IMPLIED 18 | ** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | ** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN 20 | ** NO EVENT SHALL yWorks BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21 | ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 22 | ** TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 23 | ** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | ** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 25 | ** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | ** 28 | ***************************************************************************/ 29 | 30 | using System; 31 | using System.Collections.Generic; 32 | using System.Configuration; 33 | using System.Data; 34 | using System.Linq; 35 | using System.Windows; 36 | 37 | namespace Demo.yFiles.Layout.BusRouterDemo 38 | { 39 | /// 40 | /// Interaction logic for App.xaml 41 | /// 42 | public partial class App : Application 43 | { 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /demos/Layout/BusRouter/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Layout/BusRouter/README.md: -------------------------------------------------------------------------------- 1 | # BusRouter 2 | 3 | This Demo shows how to use a BusRouter as layout. 4 | -------------------------------------------------------------------------------- /demos/Layout/BusRouter/Resources/computer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Layout/BusRouter/Resources/computer.png -------------------------------------------------------------------------------- /demos/Layout/BusRouter/Resources/network.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Layout/BusRouter/Resources/network.png -------------------------------------------------------------------------------- /demos/Layout/BusRouter/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/Layout/IncrementalHierarchicLayout/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Layout/IncrementalHierarchicLayout/README.md: -------------------------------------------------------------------------------- 1 | # IncrementalHierarchicLayout 2 | 3 | Demonstrates the use of the incremental layout facility provided by class HierarchicLayout. 4 | -------------------------------------------------------------------------------- /demos/Layout/IncrementalHierarchicLayout/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/Layout/InteractiveOrganic/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Layout/InteractiveOrganic/README.md: -------------------------------------------------------------------------------- 1 | # InteractiveOrganic 2 | 3 | Sample Form that demonstrates the usage of InteractiveOrganicLayout. 4 | -------------------------------------------------------------------------------- /demos/Layout/LayerConstraints/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Layout/LayerConstraints/README.md: -------------------------------------------------------------------------------- 1 | # LayerConstraints 2 | 3 | Demonstrates how to use layer constraints with the HierarchicLayout to 4 | restrict the node layering. 5 | -------------------------------------------------------------------------------- /demos/Layout/LayerConstraints/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/Layout/LayoutConfigurations/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 2 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 4 | 5 | -------------------------------------------------------------------------------- /demos/Layout/LayoutConfigurations/README.md: -------------------------------------------------------------------------------- 1 | # LayoutConfigurations 2 | 3 | This demo provides several configurations for layout algorithms to be used with the 4 | option handler as shown in the LayoutStyles demo. 5 | -------------------------------------------------------------------------------- /demos/Layout/LayoutStyles/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 2 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 4 | 5 | -------------------------------------------------------------------------------- /demos/Layout/LayoutStyles/README.md: -------------------------------------------------------------------------------- 1 | # LayoutStyles 2 | 3 | This demo demonstrates the automatic layout algorithms shipped with yFiles 4 | and how the different settings affect the generated layout. 5 | 6 | **Note: **This demo depends on the layout configurations from the `Demo.yFiles.Layout.Configurations` 7 | programming sample and on the option editor from the sample `Demo.yFiles.Toolkit.OptionHandler`. 8 | -------------------------------------------------------------------------------- /demos/Layout/LayoutStyles/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /demos/Layout/MarqueeClearArea/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 2 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 4 | 5 | -------------------------------------------------------------------------------- /demos/Layout/MarqueeClearArea/README.md: -------------------------------------------------------------------------------- 1 | # MarqueeClearArea 2 | 3 | A demo that shows how to interactively move graph elements within a marquee area in a given graph layout so that the modifications in the graph are minimal. 4 | -------------------------------------------------------------------------------- /demos/Layout/MarqueeClearArea/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/Layout/MazeRouting/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 2 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 4 | 5 | -------------------------------------------------------------------------------- /demos/Layout/MazeRouting/README.md: -------------------------------------------------------------------------------- 1 | # MazeRouting 2 | 3 | This demo shows how the automatic edge routing finds routes through a maze. 4 | -------------------------------------------------------------------------------- /demos/Layout/MazeRouting/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /demos/Layout/MixedLayout/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Layout/MixedLayout/README.md: -------------------------------------------------------------------------------- 1 | # MixedLayout 2 | 3 | This demo shows how to use the recursive group layout to apply different layouts to the contents of group nodes. Featured layout and routing styles are Organic, Orthogonal (Router), 4 | Orthogonal (Layout), Circular, and Hierarchical. 5 | -------------------------------------------------------------------------------- /demos/Layout/MixedLayout/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/Layout/MultiPage/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Layout/MultiPage/README.md: -------------------------------------------------------------------------------- 1 | # MultiPage 2 | 3 | Shows how to use the multipage layout. 4 | -------------------------------------------------------------------------------- /demos/Layout/NodeLabeling/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Layout/NodeLabeling/README.md: -------------------------------------------------------------------------------- 1 | # NodeLabeling 2 | 3 | Shows how to use a node labeling algorithm with different label models. 4 | -------------------------------------------------------------------------------- /demos/Layout/NodeLabeling/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/Layout/NodeTypes/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Layout/NodeTypes/README.md: -------------------------------------------------------------------------------- 1 | # NodeTypes 2 | 3 | This demo shows how different layout algorithms handle nodes that are associated with some 4 | specific types. See the Developer's Guide section on Layout with Custom Node Types for further 5 | information. In this example application, nodes with the same color are considered to be of the 6 | same type. 7 | -------------------------------------------------------------------------------- /demos/Layout/NodeTypes/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/Layout/PartialLayout/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Layout/PartialLayout/README.md: -------------------------------------------------------------------------------- 1 | # PartialLayout 2 | 3 | This demo shows how to apply `PartialLayout` to orthogonal, organic, hierarchic or 4 | circular layouts and the effect of some of its configuration settings. 5 | -------------------------------------------------------------------------------- /demos/Layout/PartialLayout/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/Layout/PortCandidate/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Layout/PortCandidate/README.md: -------------------------------------------------------------------------------- 1 | # PortCandidate 2 | 3 | This demo shows how to use PortCandidateSets in conjunction with HierarchicLayout. 4 | Also a custom node style that displays simple flowchart symbols and integrated port candidate visualization is show-cased. 5 | -------------------------------------------------------------------------------- /demos/Layout/PortCandidate/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/Layout/PreferredLabelPlacement/PreferredLabelPlacement.resx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Layout/PreferredLabelPlacement/PreferredLabelPlacement.resx -------------------------------------------------------------------------------- /demos/Layout/PreferredLabelPlacement/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Layout/PreferredLabelPlacement/README.md: -------------------------------------------------------------------------------- 1 | # PreferredLabelPlacement 2 | 3 | Shows how the PreferredPlacementDescriptor for edge labels affects the label placement of layout algorithms. 4 | -------------------------------------------------------------------------------- /demos/Layout/PreferredLabelPlacement/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/Layout/SankeyLayout/App.config: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /demos/Layout/SankeyLayout/App.xaml.cs: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | ** 3 | ** This demo file is part of yFiles WPF 3.6. 4 | ** Copyright (c) 2000-2024 by yWorks GmbH, Vor dem Kreuzberg 28, 5 | ** 72070 Tuebingen, Germany. All rights reserved. 6 | ** 7 | ** yFiles demo files exhibit yFiles WPF functionalities. Any redistribution 8 | ** of demo files in source code or binary form, with or without 9 | ** modification, is not permitted. 10 | ** 11 | ** Owners of a valid software license for a yFiles WPF version that this 12 | ** demo is shipped with are allowed to use the demo source code as basis 13 | ** for their own yFiles WPF powered applications. Use of such programs is 14 | ** governed by the rights and conditions as set out in the yFiles WPF 15 | ** license agreement. 16 | ** 17 | ** THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESS OR IMPLIED 18 | ** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | ** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN 20 | ** NO EVENT SHALL yWorks BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21 | ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 22 | ** TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 23 | ** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | ** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 25 | ** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | ** 28 | ***************************************************************************/ 29 | 30 | using System; 31 | using System.Collections.Generic; 32 | using System.Configuration; 33 | using System.Data; 34 | using System.Linq; 35 | using System.Threading.Tasks; 36 | using System.Windows; 37 | 38 | namespace SankeyLayout 39 | { 40 | /// 41 | /// Interaction logic for App.xaml 42 | /// 43 | public partial class App : Application 44 | { 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /demos/Layout/SankeyLayout/HorizontallyConstrainedPositionHandler.cs: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | ** 3 | ** This demo file is part of yFiles WPF 3.6. 4 | ** Copyright (c) 2000-2024 by yWorks GmbH, Vor dem Kreuzberg 28, 5 | ** 72070 Tuebingen, Germany. All rights reserved. 6 | ** 7 | ** yFiles demo files exhibit yFiles WPF functionalities. Any redistribution 8 | ** of demo files in source code or binary form, with or without 9 | ** modification, is not permitted. 10 | ** 11 | ** Owners of a valid software license for a yFiles WPF version that this 12 | ** demo is shipped with are allowed to use the demo source code as basis 13 | ** for their own yFiles WPF powered applications. Use of such programs is 14 | ** governed by the rights and conditions as set out in the yFiles WPF 15 | ** license agreement. 16 | ** 17 | ** THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESS OR IMPLIED 18 | ** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | ** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN 20 | ** NO EVENT SHALL yWorks BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21 | ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 22 | ** TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 23 | ** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | ** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 25 | ** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | ** 28 | ***************************************************************************/ 29 | 30 | using yWorks.Controls.Input; 31 | using yWorks.Geometry; 32 | 33 | namespace SankeyLayout 34 | { 35 | class HorizontallyConstrainedPositionHandler : ConstrainedPositionHandler 36 | { 37 | public HorizontallyConstrainedPositionHandler(IPositionHandler wrappedHandler) : base(wrappedHandler) 38 | { 39 | } 40 | 41 | protected override PointD ConstrainNewLocation(IInputModeContext context, PointD originalLocation, PointD newLocation) 42 | { 43 | return new PointD(originalLocation.X, newLocation.Y); 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /demos/Layout/SankeyLayout/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Layout/SankeyLayout/Properties/AssemblyInfo.cs -------------------------------------------------------------------------------- /demos/Layout/SankeyLayout/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /demos/Layout/SankeyLayout/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 2 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 4 | 5 | -------------------------------------------------------------------------------- /demos/Layout/SankeyLayout/README.md: -------------------------------------------------------------------------------- 1 | # SankeyLayout 2 | 3 | This demo demonstrates how HierarchicLayout can be used to create Sankey diagrams. 4 | Sankey diagrams visualize flow information between entities and edge thickness is usually proportional to the flow quantity. 5 | -------------------------------------------------------------------------------- /demos/Layout/SequenceConstraints/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Layout/SequenceConstraints/README.md: -------------------------------------------------------------------------------- 1 | # SequenceConstraints 2 | 3 | Demonstrates how to use sequence constraints with the HierarchicLayout to 4 | restrict the node sequencing. 5 | -------------------------------------------------------------------------------- /demos/Layout/SequenceConstraints/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/Layout/TreeLayout/Configuration/BusPlacerConfiguration.cs: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | ** 3 | ** This demo file is part of yFiles WPF 3.6. 4 | ** Copyright (c) 2000-2024 by yWorks GmbH, Vor dem Kreuzberg 28, 5 | ** 72070 Tuebingen, Germany. All rights reserved. 6 | ** 7 | ** yFiles demo files exhibit yFiles WPF functionalities. Any redistribution 8 | ** of demo files in source code or binary form, with or without 9 | ** modification, is not permitted. 10 | ** 11 | ** Owners of a valid software license for a yFiles WPF version that this 12 | ** demo is shipped with are allowed to use the demo source code as basis 13 | ** for their own yFiles WPF powered applications. Use of such programs is 14 | ** governed by the rights and conditions as set out in the yFiles WPF 15 | ** license agreement. 16 | ** 17 | ** THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESS OR IMPLIED 18 | ** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | ** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN 20 | ** NO EVENT SHALL yWorks BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21 | ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 22 | ** TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 23 | ** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | ** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 25 | ** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | ** 28 | ***************************************************************************/ 29 | 30 | using yWorks.Layout.Tree; 31 | 32 | namespace Demo.yFiles.Layout.Tree.Configuration 33 | { 34 | /// 35 | /// Configuration handler for 36 | /// 37 | public sealed class BusPlacerConfiguration : RotatableNodePlacerConfigurationBase 38 | { 39 | public BusPlacerConfiguration() { 40 | AdoptSettings(new BusNodePlacer()); 41 | } 42 | 43 | protected override BusNodePlacer CreatePlacerCore() { 44 | return new BusNodePlacer(ModificationMatrix); 45 | } 46 | } 47 | } -------------------------------------------------------------------------------- /demos/Layout/TreeLayout/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/Layout/TreeLayout/README.md: -------------------------------------------------------------------------------- 1 | # TreeLayout 2 | 3 | This demo demonstrates the different `INodePlacer` implementations for the 4 | `TreeLayout` algorithm. 5 | An `INodePlacer` can be assigned to each node separately. It arranges the node it is 6 | assigned to and its sub trees. In this demo all nodes of the same layer have the same node placer. 7 | -------------------------------------------------------------------------------- /demos/Layout/TreeLayout/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/LayoutOnly/AdvancedLayout/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 2 | 3 | -------------------------------------------------------------------------------- /demos/LayoutOnly/AdvancedLayout/README.md: -------------------------------------------------------------------------------- 1 | # AdvancedLayout 2 | 3 | Shows how to use advanced layout features like port constraints and automatic labeling with only the algorithms package available. 4 | -------------------------------------------------------------------------------- /demos/LayoutOnly/Graph/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 2 | 3 | -------------------------------------------------------------------------------- /demos/LayoutOnly/Graph/README.md: -------------------------------------------------------------------------------- 1 | # Graph 2 | 3 | This demo shows how to work with the Graph implementation of the algorithms package if there is no viewer component available. 4 | -------------------------------------------------------------------------------- /demos/LayoutOnly/GroupingLayout/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 2 | 3 | -------------------------------------------------------------------------------- /demos/LayoutOnly/GroupingLayout/README.md: -------------------------------------------------------------------------------- 1 | # GroupingLayout 2 | 3 | Demonstrates the use of node and edge grouping in 4 | combination with the layout algorithms that are capable of 5 | interpreting these sophisticated features if only the algorithms package is available. 6 | -------------------------------------------------------------------------------- /demos/LayoutOnly/HierarchicLayout/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 2 | 3 | -------------------------------------------------------------------------------- /demos/LayoutOnly/HierarchicLayout/README.md: -------------------------------------------------------------------------------- 1 | # HierarchicLayout 2 | 3 | Demonstrates the use of the incremental layout facility provided by class HierarchicLayout 4 | if only the algorithms package is available. 5 | -------------------------------------------------------------------------------- /demos/LayoutOnly/LayoutGraphViewer/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 2 | 3 | -------------------------------------------------------------------------------- /demos/LayoutOnly/LayoutGraphViewer/README.md: -------------------------------------------------------------------------------- 1 | # LayoutGraphViewer 2 | 3 | I rudimentary viewer component for Windows Forms that can render a layout graph. 4 | This component is only needed if only the algorithms package is available. 5 | -------------------------------------------------------------------------------- /demos/LayoutOnly/List/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 2 | 3 | -------------------------------------------------------------------------------- /demos/LayoutOnly/List/README.md: -------------------------------------------------------------------------------- 1 | # List 2 | 3 | This demo shows how to work with the list implementation of the algorithms package if there is no viewer component available. 4 | -------------------------------------------------------------------------------- /demos/LayoutOnly/NodeMap/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 2 | 3 | -------------------------------------------------------------------------------- /demos/LayoutOnly/NodeMap/README.md: -------------------------------------------------------------------------------- 1 | # NodeMap 2 | 3 | This demo shows how to work with the Graph implementation of the algorithms package if there is no viewer component available. 4 | It demonstrates how to use node maps. 5 | The demo compares the performance of different mechanisms to bind extra data to 6 | the nodes of a graph in the algorithms package. 7 | -------------------------------------------------------------------------------- /demos/LayoutOnly/ShortestPathAlgorithm/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 2 | 3 | -------------------------------------------------------------------------------- /demos/LayoutOnly/ShortestPathAlgorithm/README.md: -------------------------------------------------------------------------------- 1 | # ShortestPathAlgorithm 2 | 3 | Demonstrates how to find shortest paths in graphs using the algorithms package only. 4 | -------------------------------------------------------------------------------- /demos/LayoutOnly/SimpleLayout/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 2 | 3 | -------------------------------------------------------------------------------- /demos/LayoutOnly/SimpleLayout/README.md: -------------------------------------------------------------------------------- 1 | # SimpleLayout 2 | 3 | Shows how to use important layout and routing algorithms to calculate coordinates 4 | for a graph with only the algorithm package being available. 5 | Featured layout and routing styles are Organic, Orthogonal (Router), Orthogonal 6 | (Layout), Circular, and Hierarchical. 7 | -------------------------------------------------------------------------------- /demos/LayoutOnly/SwimLaneLayout/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 2 | 3 | -------------------------------------------------------------------------------- /demos/LayoutOnly/SwimLaneLayout/README.md: -------------------------------------------------------------------------------- 1 | # SwimLaneLayout 2 | 3 | Demonstrates the use of the swim lane layout capabilities of class HierarchicLayout 4 | if only the algorithms package is available. 5 | -------------------------------------------------------------------------------- /demos/Style/ArrowNodeStyle/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Style/ArrowNodeStyle/README.md: -------------------------------------------------------------------------------- 1 | # ArrowNodeStyle 2 | 3 | The ArrowNodeStyle provides several properties to customize its shape. There are five basic 4 | shapes provided that can be rotated in four directions. 5 | -------------------------------------------------------------------------------- /demos/Style/BezierEdgeStyle/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Style/BezierEdgeStyle/README.md: -------------------------------------------------------------------------------- 1 | # BezierEdgeStyle 2 | 3 | Shows the `BezierEdgeStyle`, along with additional customizations to enable interactive editing. 4 | -------------------------------------------------------------------------------- /demos/Style/ControlStyles/Product.cs: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | ** 3 | ** This demo file is part of yFiles WPF 3.6. 4 | ** Copyright (c) 2000-2024 by yWorks GmbH, Vor dem Kreuzberg 28, 5 | ** 72070 Tuebingen, Germany. All rights reserved. 6 | ** 7 | ** yFiles demo files exhibit yFiles WPF functionalities. Any redistribution 8 | ** of demo files in source code or binary form, with or without 9 | ** modification, is not permitted. 10 | ** 11 | ** Owners of a valid software license for a yFiles WPF version that this 12 | ** demo is shipped with are allowed to use the demo source code as basis 13 | ** for their own yFiles WPF powered applications. Use of such programs is 14 | ** governed by the rights and conditions as set out in the yFiles WPF 15 | ** license agreement. 16 | ** 17 | ** THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESS OR IMPLIED 18 | ** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | ** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN 20 | ** NO EVENT SHALL yWorks BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21 | ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 22 | ** TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 23 | ** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | ** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 25 | ** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | ** 28 | ***************************************************************************/ 29 | 30 | namespace Demo.yFiles.Graph.ControlStyles 31 | { 32 | /// 33 | /// The business object that describes a product in our simple model. 34 | /// 35 | public class Product 36 | { 37 | // For XAML only 38 | public Product() : this(string.Empty, -1, false) {} 39 | 40 | public Product(string name, int id, bool inStock) { 41 | Name = name; 42 | Id = id; 43 | InStock = inStock; 44 | } 45 | 46 | public string Name { get; set; } 47 | public int Id { get; set; } 48 | public bool InStock { get; set; } 49 | } 50 | } -------------------------------------------------------------------------------- /demos/Style/ControlStyles/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Style/ControlStyles/README.md: -------------------------------------------------------------------------------- 1 | # ControlStyles 2 | 3 | Demo application that shows how to use the 4 | Control based styles for creating complex visualizations using XAML. 5 | -------------------------------------------------------------------------------- /demos/Style/ControlStyles/Relation.cs: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | ** 3 | ** This demo file is part of yFiles WPF 3.6. 4 | ** Copyright (c) 2000-2024 by yWorks GmbH, Vor dem Kreuzberg 28, 5 | ** 72070 Tuebingen, Germany. All rights reserved. 6 | ** 7 | ** yFiles demo files exhibit yFiles WPF functionalities. Any redistribution 8 | ** of demo files in source code or binary form, with or without 9 | ** modification, is not permitted. 10 | ** 11 | ** Owners of a valid software license for a yFiles WPF version that this 12 | ** demo is shipped with are allowed to use the demo source code as basis 13 | ** for their own yFiles WPF powered applications. Use of such programs is 14 | ** governed by the rights and conditions as set out in the yFiles WPF 15 | ** license agreement. 16 | ** 17 | ** THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESS OR IMPLIED 18 | ** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | ** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN 20 | ** NO EVENT SHALL yWorks BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21 | ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 22 | ** TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 23 | ** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | ** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 25 | ** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | ** 28 | ***************************************************************************/ 29 | 30 | namespace Demo.yFiles.Graph.ControlStyles 31 | { 32 | /// 33 | /// The relation business object in our model. 34 | /// 35 | public class Relation 36 | { 37 | public Customer Customer { get; set; } 38 | public Product Product { get; set; } 39 | 40 | public override string ToString() { 41 | return string.Format("{0}->{1}", Customer.Id, Product.Id); 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /demos/Style/DefaultLabelStyle/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Style/DefaultLabelStyle/README.md: -------------------------------------------------------------------------------- 1 | # DefaultLabelStyle 2 | 3 | This demo shows the most important configuration options for the built-in DefaultLabelStyle class. 4 | -------------------------------------------------------------------------------- /demos/Style/GroupNodeStyle/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Style/GroupNodeStyle/README.md: -------------------------------------------------------------------------------- 1 | # GroupNodeStyle 2 | 3 | The GroupNodeStyle is a style primarily intended for groups and folders, i.e., collapsed groups. 4 | -------------------------------------------------------------------------------- /demos/Style/RectangleNodeStyle/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Style/RectangleNodeStyle/README.md: -------------------------------------------------------------------------------- 1 | # RectangleNodeStyle 2 | 3 | A demo that shows the different node shapes that can be implemented with the RectangleNodeStyle class. 4 | Several nodes with different RectangleNodeStyle configurations are provided on startup and the 5 | configuration of a style can be changed via an option panel. The properties that can be changed include 6 | whether corners should be rounded or cut by a diagonal line, which corners should be affected, whether 7 | an absolute or relative portion of the corners shall be adjusted (which is mainly important when 8 | resizing the node) as well as the value (absolute or relative to the node size) used to calculate the 9 | corner radius. 10 | -------------------------------------------------------------------------------- /demos/Style/SelectionStyling/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Style/SelectionStyling/README.md: -------------------------------------------------------------------------------- 1 | # SelectionStyling 2 | 3 | Demonstrates customized selecting painting of nodes, edges and labels by decorating these items with a corresponding style. 4 | -------------------------------------------------------------------------------- /demos/Style/SelectionStyling/Resources/edit_label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Style/SelectionStyling/Resources/edit_label.png -------------------------------------------------------------------------------- /demos/Style/ShapeNodeStyle/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Style/ShapeNodeStyle/README.md: -------------------------------------------------------------------------------- 1 | # ShapeNodeStyle 2 | 3 | This demo shows the main features of the `ShapeNodeStyle` class, most notably its supported shapes and 4 | the shape-specific effects of `KeepIntrinsicAspectRatio`. 5 | -------------------------------------------------------------------------------- /demos/Style/SimpleArrow/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Style/SimpleArrow/README.md: -------------------------------------------------------------------------------- 1 | # SimpleArrow 2 | 3 | This demo shows how to create a simple custom arrow. The arrow shown looks like the edge tapers out towards its end. Width and length of the arrow can be changed. 4 | -------------------------------------------------------------------------------- /demos/Style/SimpleCustomStyle/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Style/SimpleCustomStyle/README.md: -------------------------------------------------------------------------------- 1 | # SimpleCustomStyle 2 | 3 | This demo shows how to create relatively simple custom styles. 4 | -------------------------------------------------------------------------------- /demos/Style/SimpleCustomStyle/Resources/edit_label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Style/SimpleCustomStyle/Resources/edit_label.png -------------------------------------------------------------------------------- /demos/Style/StyleDecorators/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Style/StyleDecorators/README.md: -------------------------------------------------------------------------------- 1 | # StyleDecorators 2 | 3 | This demo shows how to decorate existing styles by wrapping them. 4 | -------------------------------------------------------------------------------- /demos/Style/StyleDecorators/Resources/computer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Style/StyleDecorators/Resources/computer.png -------------------------------------------------------------------------------- /demos/Style/StyleDecorators/Resources/internet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Style/StyleDecorators/Resources/internet.png -------------------------------------------------------------------------------- /demos/Style/StyleDecorators/Resources/network.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Style/StyleDecorators/Resources/network.png -------------------------------------------------------------------------------- /demos/Style/StyleDecorators/Resources/printer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Style/StyleDecorators/Resources/printer.png -------------------------------------------------------------------------------- /demos/Style/StyleDecorators/Resources/scanner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Style/StyleDecorators/Resources/scanner.png -------------------------------------------------------------------------------- /demos/Style/StyleDecorators/Resources/switch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Style/StyleDecorators/Resources/switch.png -------------------------------------------------------------------------------- /demos/Style/TableNodeStyle/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Style/TableNodeStyle/Properties/AssemblyInfo.cs -------------------------------------------------------------------------------- /demos/Style/TableNodeStyle/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /demos/Style/TableNodeStyle/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Style/TableNodeStyle/README.md: -------------------------------------------------------------------------------- 1 | # TableNodeStyle 2 | 3 | This demo shows how to implement different styles for `IStripe` instances inside an `ITable` instance. 4 | -------------------------------------------------------------------------------- /demos/Style/TextWrapping/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Style/TextWrapping/README.md: -------------------------------------------------------------------------------- 1 | # TextWrapping 2 | 3 | This demo shows how to configure the text wrapping and trimming feature provided by the DefaultLabelStyle. 4 | Aside from wrapping in rectangular shapes, the TextWrappingShape property allows 5 | for wrapping in many more shapes like triangle, hexagon or ellipse. 6 | -------------------------------------------------------------------------------- /demos/Style/UMLClassStyle/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Style/UMLClassStyle/README.md: -------------------------------------------------------------------------------- 1 | # UMLClassStyle 2 | 3 | This demo shows a custom UML diagram style for nodes. 4 | -------------------------------------------------------------------------------- /demos/Style/UMLClassStyle/Resources/pill_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Style/UMLClassStyle/Resources/pill_blue.png -------------------------------------------------------------------------------- /demos/Style/UMLClassStyle/Resources/pill_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Style/UMLClassStyle/Resources/pill_green.png -------------------------------------------------------------------------------- /demos/Style/UMLClassStyle/Resources/pill_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Style/UMLClassStyle/Resources/pill_red.png -------------------------------------------------------------------------------- /demos/Style/VisualStateManager/Product.cs: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | ** 3 | ** This demo file is part of yFiles WPF 3.6. 4 | ** Copyright (c) 2000-2024 by yWorks GmbH, Vor dem Kreuzberg 28, 5 | ** 72070 Tuebingen, Germany. All rights reserved. 6 | ** 7 | ** yFiles demo files exhibit yFiles WPF functionalities. Any redistribution 8 | ** of demo files in source code or binary form, with or without 9 | ** modification, is not permitted. 10 | ** 11 | ** Owners of a valid software license for a yFiles WPF version that this 12 | ** demo is shipped with are allowed to use the demo source code as basis 13 | ** for their own yFiles WPF powered applications. Use of such programs is 14 | ** governed by the rights and conditions as set out in the yFiles WPF 15 | ** license agreement. 16 | ** 17 | ** THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESS OR IMPLIED 18 | ** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | ** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN 20 | ** NO EVENT SHALL yWorks BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21 | ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 22 | ** TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 23 | ** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | ** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 25 | ** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | ** 28 | ***************************************************************************/ 29 | 30 | namespace Demo.yFiles.Graph.VisualStateManager 31 | { 32 | /// 33 | /// The business object that describes a product in our simple model. 34 | /// 35 | public class Product 36 | { 37 | // For XAML only 38 | public Product() : this(string.Empty, -1, false) {} 39 | 40 | public Product(string name, int id, bool inStock) { 41 | Name = name; 42 | Id = id; 43 | InStock = inStock; 44 | } 45 | 46 | public string Name { get; set; } 47 | public int Id { get; set; } 48 | public bool InStock { get; set; } 49 | } 50 | } -------------------------------------------------------------------------------- /demos/Style/VisualStateManager/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Style/VisualStateManager/README.md: -------------------------------------------------------------------------------- 1 | # VisualStateManager 2 | 3 | Demo application that shows how to use Visual State Manager together with the 4 | Control based styles for creating complex visualizations using XAML. 5 | The visualizations for selection and highlights use the Visual State Manager 6 | to apply smooth fade in and fade out transitions. 7 | -------------------------------------------------------------------------------- /demos/Style/VisualStateManager/Relation.cs: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | ** 3 | ** This demo file is part of yFiles WPF 3.6. 4 | ** Copyright (c) 2000-2024 by yWorks GmbH, Vor dem Kreuzberg 28, 5 | ** 72070 Tuebingen, Germany. All rights reserved. 6 | ** 7 | ** yFiles demo files exhibit yFiles WPF functionalities. Any redistribution 8 | ** of demo files in source code or binary form, with or without 9 | ** modification, is not permitted. 10 | ** 11 | ** Owners of a valid software license for a yFiles WPF version that this 12 | ** demo is shipped with are allowed to use the demo source code as basis 13 | ** for their own yFiles WPF powered applications. Use of such programs is 14 | ** governed by the rights and conditions as set out in the yFiles WPF 15 | ** license agreement. 16 | ** 17 | ** THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESS OR IMPLIED 18 | ** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | ** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN 20 | ** NO EVENT SHALL yWorks BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21 | ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 22 | ** TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 23 | ** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | ** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 25 | ** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | ** 28 | ***************************************************************************/ 29 | 30 | namespace Demo.yFiles.Graph.VisualStateManager 31 | { 32 | /// 33 | /// The relation business object in our model. 34 | /// 35 | public class Relation 36 | { 37 | public Customer Customer { get; set; } 38 | public Product Product { get; set; } 39 | 40 | public override string ToString() { 41 | return string.Format("{0}->{1}", Customer.Id, Product.Id); 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /demos/Style/VisualStateManager/VSMEdgeSegmentControlEdgeStyle.cs: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | ** 3 | ** This demo file is part of yFiles WPF 3.6. 4 | ** Copyright (c) 2000-2024 by yWorks GmbH, Vor dem Kreuzberg 28, 5 | ** 72070 Tuebingen, Germany. All rights reserved. 6 | ** 7 | ** yFiles demo files exhibit yFiles WPF functionalities. Any redistribution 8 | ** of demo files in source code or binary form, with or without 9 | ** modification, is not permitted. 10 | ** 11 | ** Owners of a valid software license for a yFiles WPF version that this 12 | ** demo is shipped with are allowed to use the demo source code as basis 13 | ** for their own yFiles WPF powered applications. Use of such programs is 14 | ** governed by the rights and conditions as set out in the yFiles WPF 15 | ** license agreement. 16 | ** 17 | ** THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESS OR IMPLIED 18 | ** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | ** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN 20 | ** NO EVENT SHALL yWorks BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21 | ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 22 | ** TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 23 | ** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | ** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 25 | ** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | ** 28 | ***************************************************************************/ 29 | 30 | using System.Windows; 31 | using yWorks.Controls; 32 | using yWorks.Graph; 33 | using yWorks.Graph.Styles; 34 | 35 | namespace Demo.yFiles.Graph.VisualStateManager 36 | { 37 | public class VSMEdgeSegmentControlEdgeStyle : EdgeSegmentControlEdgeStyle 38 | { 39 | public sealed override EdgeSegmentControl CreateControl(IRenderContext context, IEdge edge) { 40 | var edgeControl = new VSMEdgeSegmentControl(); 41 | Style style = GetStyle(context, edge); 42 | if (style != null) { 43 | edgeControl.Style = style; 44 | } 45 | return edgeControl; 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /demos/Style/VisualStateManager/VSMLabelControlLabelStyle.cs: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | ** 3 | ** This demo file is part of yFiles WPF 3.6. 4 | ** Copyright (c) 2000-2024 by yWorks GmbH, Vor dem Kreuzberg 28, 5 | ** 72070 Tuebingen, Germany. All rights reserved. 6 | ** 7 | ** yFiles demo files exhibit yFiles WPF functionalities. Any redistribution 8 | ** of demo files in source code or binary form, with or without 9 | ** modification, is not permitted. 10 | ** 11 | ** Owners of a valid software license for a yFiles WPF version that this 12 | ** demo is shipped with are allowed to use the demo source code as basis 13 | ** for their own yFiles WPF powered applications. Use of such programs is 14 | ** governed by the rights and conditions as set out in the yFiles WPF 15 | ** license agreement. 16 | ** 17 | ** THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESS OR IMPLIED 18 | ** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | ** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN 20 | ** NO EVENT SHALL yWorks BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21 | ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 22 | ** TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 23 | ** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | ** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 25 | ** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | ** 28 | ***************************************************************************/ 29 | 30 | using System.Windows; 31 | using yWorks.Controls; 32 | using yWorks.Graph; 33 | using yWorks.Graph.Styles; 34 | 35 | namespace Demo.yFiles.Graph.VisualStateManager 36 | { 37 | public class VSMLabelControlLabelStyle : LabelControlLabelStyle 38 | { 39 | public sealed override LabelControl CreateControl(IRenderContext context, ILabel label) { 40 | var labelControl = new VSMLabelControl(); 41 | Style style = GetStyle(context, label); 42 | if (style != null) { 43 | labelControl.Style = style; 44 | } 45 | return labelControl; 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /demos/Style/VisualStateManager/VSMNodeControlNodeStyle.cs: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | ** 3 | ** This demo file is part of yFiles WPF 3.6. 4 | ** Copyright (c) 2000-2024 by yWorks GmbH, Vor dem Kreuzberg 28, 5 | ** 72070 Tuebingen, Germany. All rights reserved. 6 | ** 7 | ** yFiles demo files exhibit yFiles WPF functionalities. Any redistribution 8 | ** of demo files in source code or binary form, with or without 9 | ** modification, is not permitted. 10 | ** 11 | ** Owners of a valid software license for a yFiles WPF version that this 12 | ** demo is shipped with are allowed to use the demo source code as basis 13 | ** for their own yFiles WPF powered applications. Use of such programs is 14 | ** governed by the rights and conditions as set out in the yFiles WPF 15 | ** license agreement. 16 | ** 17 | ** THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESS OR IMPLIED 18 | ** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | ** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN 20 | ** NO EVENT SHALL yWorks BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21 | ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 22 | ** TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 23 | ** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | ** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 25 | ** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | ** 28 | ***************************************************************************/ 29 | 30 | using System.Windows; 31 | using yWorks.Controls; 32 | using yWorks.Graph; 33 | using yWorks.Graph.Styles; 34 | 35 | namespace Demo.yFiles.Graph.VisualStateManager 36 | { 37 | public class VSMNodeControlNodeStyle : NodeControlNodeStyle 38 | { 39 | public sealed override NodeControl CreateControl(IRenderContext context, INode node) { 40 | var nodeControl = new VSMNodeControl(); 41 | Style style = GetStyle(context, node); 42 | if (style != null) { 43 | nodeControl.Style = style; 44 | } 45 | return nodeControl; 46 | } 47 | } 48 | } -------------------------------------------------------------------------------- /demos/Style/VisualStateManager/VSMPortControlPortStyle.cs: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | ** 3 | ** This demo file is part of yFiles WPF 3.6. 4 | ** Copyright (c) 2000-2024 by yWorks GmbH, Vor dem Kreuzberg 28, 5 | ** 72070 Tuebingen, Germany. All rights reserved. 6 | ** 7 | ** yFiles demo files exhibit yFiles WPF functionalities. Any redistribution 8 | ** of demo files in source code or binary form, with or without 9 | ** modification, is not permitted. 10 | ** 11 | ** Owners of a valid software license for a yFiles WPF version that this 12 | ** demo is shipped with are allowed to use the demo source code as basis 13 | ** for their own yFiles WPF powered applications. Use of such programs is 14 | ** governed by the rights and conditions as set out in the yFiles WPF 15 | ** license agreement. 16 | ** 17 | ** THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESS OR IMPLIED 18 | ** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | ** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN 20 | ** NO EVENT SHALL yWorks BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21 | ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 22 | ** TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 23 | ** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | ** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 25 | ** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | ** 28 | ***************************************************************************/ 29 | 30 | using System.Windows; 31 | using yWorks.Controls; 32 | using yWorks.Graph; 33 | using yWorks.Graph.Styles; 34 | 35 | namespace Demo.yFiles.Graph.VisualStateManager 36 | { 37 | public class VSMPortControlPortStyle : PortControlPortStyle 38 | { 39 | public sealed override PortControl CreateControl(IRenderContext context, IPort port) { 40 | var portControl = new VSMPortControl(); 41 | Style style = GetStyle(context, port); 42 | if (style != null) { 43 | portControl.Style = style; 44 | } 45 | return portControl; 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /demos/Utils/Aggregation/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Utils/Aggregation/README.md: -------------------------------------------------------------------------------- 1 | # Aggregation 2 | 3 | A demo library that provides an IGraph implementation to wrap a large graph and provide a smaller graph by 4 | replacing groups of nodes with single nodes. 5 | -------------------------------------------------------------------------------- /demos/Utils/DemoToolkit/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Utils/DemoToolkit/Properties/AssemblyInfo.cs -------------------------------------------------------------------------------- /demos/Utils/DemoToolkit/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Utils/DemoToolkit/README.md: -------------------------------------------------------------------------------- 1 | # DemoToolkit 2 | 3 | Support project for several demo applications. This projects provides common UI styles. 4 | -------------------------------------------------------------------------------- /demos/Utils/DemoToolkit/Resources/yFiles.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Utils/DemoToolkit/Resources/yFiles.ico -------------------------------------------------------------------------------- /demos/Utils/Option/Handler/IOptionGroup.cs: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | ** 3 | ** This demo file is part of yFiles WPF 3.6. 4 | ** Copyright (c) 2000-2024 by yWorks GmbH, Vor dem Kreuzberg 28, 5 | ** 72070 Tuebingen, Germany. All rights reserved. 6 | ** 7 | ** yFiles demo files exhibit yFiles WPF functionalities. Any redistribution 8 | ** of demo files in source code or binary form, with or without 9 | ** modification, is not permitted. 10 | ** 11 | ** Owners of a valid software license for a yFiles WPF version that this 12 | ** demo is shipped with are allowed to use the demo source code as basis 13 | ** for their own yFiles WPF powered applications. Use of such programs is 14 | ** governed by the rights and conditions as set out in the yFiles WPF 15 | ** license agreement. 16 | ** 17 | ** THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESS OR IMPLIED 18 | ** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | ** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN 20 | ** NO EVENT SHALL yWorks BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21 | ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 22 | ** TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 23 | ** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | ** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 25 | ** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | ** 28 | ***************************************************************************/ 29 | 30 | using System.Collections.ObjectModel; 31 | using System.Reflection; 32 | 33 | namespace Demo.yFiles.Option.Handler 34 | { 35 | /// 36 | /// interface for all classes that support the nesting of IOptionItems 37 | /// 38 | [Obfuscation(StripAfterObfuscation = false, Exclude = true, ApplyToMembers = true)] 39 | public interface IOptionGroup : IOptionItem 40 | { 41 | /// 42 | /// Return a readonly list of all children 43 | /// 44 | ObservableCollection Items { get; } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /demos/Utils/Option/I18N/OptionHandlerI18N.de.resx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Utils/Option/I18N/OptionHandlerI18N.de.resx -------------------------------------------------------------------------------- /demos/Utils/Option/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/Utils/Option/README.md: -------------------------------------------------------------------------------- 1 | # Option 2 | 3 | This demo implements a generic framework to display and edit settings. 4 | 5 | It is used by several other demos, such as `Demo.yFiles.Modules` and 6 | `Demo.yFiles.GraphEditor`. 7 | 8 | **This is legacy only code for older demos and should not be used as a starting point for new projects. Use the Demo.yFiles.Toolkit.OptionHandler demo instead** 9 | -------------------------------------------------------------------------------- /demos/Utils/Option/XamlConstants.cs: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | ** 3 | ** This demo file is part of yFiles WPF 3.6. 4 | ** Copyright (c) 2000-2024 by yWorks GmbH, Vor dem Kreuzberg 28, 5 | ** 72070 Tuebingen, Germany. All rights reserved. 6 | ** 7 | ** yFiles demo files exhibit yFiles WPF functionalities. Any redistribution 8 | ** of demo files in source code or binary form, with or without 9 | ** modification, is not permitted. 10 | ** 11 | ** Owners of a valid software license for a yFiles WPF version that this 12 | ** demo is shipped with are allowed to use the demo source code as basis 13 | ** for their own yFiles WPF powered applications. Use of such programs is 14 | ** governed by the rights and conditions as set out in the yFiles WPF 15 | ** license agreement. 16 | ** 17 | ** THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESS OR IMPLIED 18 | ** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | ** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN 20 | ** NO EVENT SHALL yWorks BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21 | ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 22 | ** TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 23 | ** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | ** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 25 | ** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | ** 28 | ***************************************************************************/ 29 | 30 | using System.Windows.Markup; 31 | using yWorks.Controls; 32 | 33 | [assembly: XmlnsDefinition("http://www.yworks.com/yfilesWPF/3.0/demos/optionhandler", "Demo.yFiles.Option.Editor")] 34 | [assembly: XmlnsDefinition("http://www.yworks.com/yfilesWPF/3.0/demos/optionhandler", "Demo.yFiles.Option.Handler")] 35 | [assembly: XmlnsDefinition("http://www.yworks.com/yfilesWPF/3.0/demos/optionhandler", "Demo.yFiles.Option.View")] 36 | [assembly: XmlnsDefinition("http://www.yworks.com/yfilesWPF/3.0/demos/optionhandler", "Demo.yFiles.Option")] -------------------------------------------------------------------------------- /demos/Utils/Option/doc-files/figures/icon_api.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Utils/Option/doc-files/figures/icon_api.gif -------------------------------------------------------------------------------- /demos/Utils/Option/doc-files/figures/node_properties_wpf.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/Utils/Option/doc-files/figures/node_properties_wpf.jpg -------------------------------------------------------------------------------- /demos/Utils/Option/doc-files/jssh/shBrushCSharp.js: -------------------------------------------------------------------------------- 1 | dp.sh.Brushes.CSharp = function() 2 | { 3 | var keywords = 'abstract as base bool break byte case catch char checked class const ' + 4 | 'continue decimal default delegate do double else enum event explicit ' + 5 | 'extern false finally fixed float for foreach get goto if implicit in int ' + 6 | 'interface internal is lock long namespace new null object operator out ' + 7 | 'override params private protected public readonly ref return sbyte sealed set ' + 8 | 'short sizeof stackalloc static string struct switch this throw true try ' + 9 | 'typeof uint ulong unchecked unsafe ushort using virtual void while'; 10 | 11 | this.regexList = [ 12 | // There's a slight problem with matching single line comments and figuring out 13 | // a difference between // and ///. Using lookahead and lookbehind solves the 14 | // problem, unfortunately JavaScript doesn't support lookbehind. So I'm at a 15 | // loss how to translate that regular expression to JavaScript compatible one. 16 | // { regex: new RegExp('(? 36 | /// Interaction logic for ExceptionDialog.xaml 37 | /// 38 | public partial class ExceptionDialog 39 | { 40 | public ExceptionDialog() { 41 | InitializeComponent(); 42 | } 43 | 44 | public ExceptionDialog(Exception exc) { 45 | InitializeComponent(); 46 | exceptionText.Text = exc.Message + "\n\n" + exc.StackTrace; 47 | } 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /demos/View/GraphMLSimple/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/View/GraphMLSimple/README.md: -------------------------------------------------------------------------------- 1 | # GraphMLSimple 2 | 3 | Shows how to read and write a yFiles WPF graph from/to GraphML, using the predefined handlers for 4 | graphical elements. 5 | -------------------------------------------------------------------------------- /demos/View/GraphViewer/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/View/GraphViewer/README.md: -------------------------------------------------------------------------------- 1 | # GraphViewer 2 | 3 | This demo shows how to display a graph with the Viewer component of yFiles WPF. 4 | -------------------------------------------------------------------------------- /demos/View/GraphViewer/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/View/ImageExport/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/View/ImageExport/README.md: -------------------------------------------------------------------------------- 1 | # ImageExport 2 | 3 | This demo shows how to export a graph or part of it to different 4 | pixel and vector format images like JPEG, PNG, TIFF, GIF, BMP or EMF 5 | as well as how to display a print preview dialog. 6 | -------------------------------------------------------------------------------- /demos/View/LargeGraphs/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/View/LargeGraphs/README.md: -------------------------------------------------------------------------------- 1 | # LargeGraphs 2 | 3 | Demonstration specialized styles to display large graphs with high performance. 4 | -------------------------------------------------------------------------------- /demos/View/LargeGraphs/Resources/balloon_10000_9999.graphmlz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/View/LargeGraphs/Resources/balloon_10000_9999.graphmlz -------------------------------------------------------------------------------- /demos/View/LargeGraphs/Resources/balloon_15000_14999.graphmlz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/View/LargeGraphs/Resources/balloon_15000_14999.graphmlz -------------------------------------------------------------------------------- /demos/View/LargeGraphs/Resources/balloon_2000_1999.graphmlz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/View/LargeGraphs/Resources/balloon_2000_1999.graphmlz -------------------------------------------------------------------------------- /demos/View/LargeGraphs/Resources/balloon_5000_4999.graphmlz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/View/LargeGraphs/Resources/balloon_5000_4999.graphmlz -------------------------------------------------------------------------------- /demos/View/LargeGraphs/Resources/hierarchic_10000_11000.graphmlz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/View/LargeGraphs/Resources/hierarchic_10000_11000.graphmlz -------------------------------------------------------------------------------- /demos/View/LargeGraphs/Resources/hierarchic_15000_16000.graphmlz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/View/LargeGraphs/Resources/hierarchic_15000_16000.graphmlz -------------------------------------------------------------------------------- /demos/View/LargeGraphs/Resources/hierarchic_2000_2100.graphmlz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/View/LargeGraphs/Resources/hierarchic_2000_2100.graphmlz -------------------------------------------------------------------------------- /demos/View/LargeGraphs/Resources/hierarchic_5000_5100.graphmlz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/View/LargeGraphs/Resources/hierarchic_5000_5100.graphmlz -------------------------------------------------------------------------------- /demos/View/LargeGraphs/Styles/Fast/FastEdgeStyle.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/View/LargeGraphs/Styles/Fast/FastEdgeStyle.cs -------------------------------------------------------------------------------- /demos/View/LargeGraphs/Styles/Fast/FastLabelStyle.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/View/LargeGraphs/Styles/Fast/FastLabelStyle.cs -------------------------------------------------------------------------------- /demos/View/LargeGraphs/Styles/LevelOfDetail/LevelOfDetailStyleContainer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/View/LargeGraphs/Styles/LevelOfDetail/LevelOfDetailStyleContainer.cs -------------------------------------------------------------------------------- /demos/View/LargeGraphs/Styles/Selection/FastEdgeSelectionStyle.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/View/LargeGraphs/Styles/Selection/FastEdgeSelectionStyle.cs -------------------------------------------------------------------------------- /demos/View/LargeGraphs/Styles/Selection/FastLabelSelectionStyle.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/View/LargeGraphs/Styles/Selection/FastLabelSelectionStyle.cs -------------------------------------------------------------------------------- /demos/View/LargeGraphs/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/View/Printing/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/View/Printing/README.md: -------------------------------------------------------------------------------- 1 | # Printing 2 | 3 | This demo shows how to use and customize printing functionality. 4 | -------------------------------------------------------------------------------- /demos/View/RenderPolicies/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/View/RenderPolicies/README.md: -------------------------------------------------------------------------------- 1 | # RenderPolicies 2 | 3 | This demo shows the effect of different render policies on the graph items of a sample graph. 4 | The hierarchic nesting policy determines how and whether the position of a node in the 5 | graph hierarchy affects its z-index and if edges are affected by their source and target nodes' position. 6 | Labels and Ports can either be rendered in separate label and port groups or directly at their owner. 7 | -------------------------------------------------------------------------------- /demos/View/SimpleEditor/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/View/SimpleEditor/README.md: -------------------------------------------------------------------------------- 1 | # SimpleEditor 2 | 3 | Simple demo Form that hosts a `GraphControl` which enables graph editing 4 | via the default `GraphEditorInputMode` input mode for editing graphs. 5 | -------------------------------------------------------------------------------- /demos/View/UIAutomation/App.xaml.cs: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | ** 3 | ** This demo file is part of yFiles WPF 3.6. 4 | ** Copyright (c) 2000-2024 by yWorks GmbH, Vor dem Kreuzberg 28, 5 | ** 72070 Tuebingen, Germany. All rights reserved. 6 | ** 7 | ** yFiles demo files exhibit yFiles WPF functionalities. Any redistribution 8 | ** of demo files in source code or binary form, with or without 9 | ** modification, is not permitted. 10 | ** 11 | ** Owners of a valid software license for a yFiles WPF version that this 12 | ** demo is shipped with are allowed to use the demo source code as basis 13 | ** for their own yFiles WPF powered applications. Use of such programs is 14 | ** governed by the rights and conditions as set out in the yFiles WPF 15 | ** license agreement. 16 | ** 17 | ** THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESS OR IMPLIED 18 | ** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | ** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN 20 | ** NO EVENT SHALL yWorks BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21 | ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 22 | ** TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 23 | ** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | ** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 25 | ** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | ** 28 | ***************************************************************************/ 29 | 30 | using System; 31 | using System.Collections.Generic; 32 | using System.Configuration; 33 | using System.Data; 34 | using System.Linq; 35 | using System.Windows; 36 | 37 | namespace Demo.yFiles.Graph.UIAutomation 38 | { 39 | /// 40 | /// Interaction logic for App.xaml 41 | /// 42 | public partial class App : Application 43 | { 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /demos/View/UIAutomation/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/View/UIAutomation/README.md: -------------------------------------------------------------------------------- 1 | # UIAutomation 2 | 3 | This demo shows how to use yFiles' support for UI Automation. 4 | -------------------------------------------------------------------------------- /demos/View/Undo/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/View/Undo/README.md: -------------------------------------------------------------------------------- 1 | # Undo 2 | 3 | This demo presents Undo/Redo functionality available with yFiles WPF. 4 | -------------------------------------------------------------------------------- /demos/View/ZOrder/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /demos/View/ZOrder/README.md: -------------------------------------------------------------------------------- 1 | # ZOrder 2 | 3 | This demo shows how to customize editing gestures to keep the z-order of nodes consistent. 4 | It also demonstrates how to persist the z-Order when saving and loading a graph as GraphML. 5 | -------------------------------------------------------------------------------- /demos/yEd WPF/GraphEditor/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/yEd WPF/GraphEditor/Properties/AssemblyInfo.cs -------------------------------------------------------------------------------- /demos/yEd WPF/GraphEditor/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /demos/yEd WPF/GraphEditor/README.md: -------------------------------------------------------------------------------- 1 | # GraphEditor 2 | 3 | Complex demo application that showcases many features that are present in yFiles WPF. 4 | -------------------------------------------------------------------------------- /demos/yEd WPF/GraphEditor/Resources/yWorks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/yEd WPF/GraphEditor/Resources/yWorks.png -------------------------------------------------------------------------------- /demos/yEd WPF/GraphEditor/Support/FontFamilyDomain.cs: -------------------------------------------------------------------------------- 1 | /**************************************************************************** 2 | ** 3 | ** This demo file is part of yFiles WPF 3.6. 4 | ** Copyright (c) 2000-2024 by yWorks GmbH, Vor dem Kreuzberg 28, 5 | ** 72070 Tuebingen, Germany. All rights reserved. 6 | ** 7 | ** yFiles demo files exhibit yFiles WPF functionalities. Any redistribution 8 | ** of demo files in source code or binary form, with or without 9 | ** modification, is not permitted. 10 | ** 11 | ** Owners of a valid software license for a yFiles WPF version that this 12 | ** demo is shipped with are allowed to use the demo source code as basis 13 | ** for their own yFiles WPF powered applications. Use of such programs is 14 | ** governed by the rights and conditions as set out in the yFiles WPF 15 | ** license agreement. 16 | ** 17 | ** THIS SOFTWARE IS PROVIDED ''AS IS'' AND ANY EXPRESS OR IMPLIED 18 | ** WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 19 | ** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN 20 | ** NO EVENT SHALL yWorks BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21 | ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 22 | ** TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 23 | ** PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 24 | ** LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 25 | ** NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 26 | ** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | ** 28 | ***************************************************************************/ 29 | 30 | using System; 31 | using System.Collections; 32 | using System.Collections.Generic; 33 | using System.Windows.Media; 34 | 35 | namespace Demo.yFiles.GraphEditor 36 | { 37 | public sealed class FontFamilyDomain : IEnumerable 38 | { 39 | public IEnumerator GetEnumerator() { 40 | return Fonts.SystemFontFamilies.GetEnumerator(); 41 | } 42 | 43 | IEnumerator IEnumerable.GetEnumerator() { 44 | return GetEnumerator(); 45 | } 46 | } 47 | } -------------------------------------------------------------------------------- /demos/yEd WPF/GraphEditor/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /demos/yEd WPF/GraphEditor/yFiles.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/demos/yEd WPF/GraphEditor/yFiles.ico -------------------------------------------------------------------------------- /demos/yEd WPF/README.md: -------------------------------------------------------------------------------- 1 | 2 | # yEd WPF Graph Editor Demo 3 | Complex demo application that showcases most features that are present in yFiles WPF. yEd WPF will help you to interactively explore many capabilities of both the yFiles WPF Layout and the yFiles WPF Viewer functionality. It is closely modeled after [yEd for Java](http://www.yworks.com/en/products_yed_about.html). 4 | 5 | You will find the following programming samples in this package: 6 | 7 | 8 | | Name | Description | 9 | |:---|:---| 10 | |**GraphEditor** | Complex demo application that showcases most features that are present in yFiles WPF. | 11 | 12 | ## Running the Demos 13 | 14 | ### With Visual Studio 15 | 16 | * To load all samples into Visual Studio you can simply open the solution file yFiles Demos.sln. 17 | * To load a single sample into Visual Studio you can open the project file (.csproj) in the sample's directory. 18 | 19 | 20 | 21 | 22 | #### See also 23 | [Product Page](https://www.yworks.com/products/yfileswpf) 24 | [API Documentation](https://docs.yworks.com/yfileswpf) 25 | [Help and Support](https://www.yworks.com/products/yfiles/support) 26 | 27 | 28 | #### Contact 29 | yWorks GmbH 30 | Vor dem Kreuzberg 28 31 | 72070 Tuebingen 32 | Germany 33 | Phone: +49 7071 979050 34 | Email: contact@yworks.com 35 | 36 | COPYRIGHT © 2021 yWorks 37 | 38 | 39 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/01 Creating the View/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/01 Creating the View/README.md: -------------------------------------------------------------------------------- 1 | # 01 Creating the View 2 | 3 | This demo just introduces class `GraphControl`, which is the central UI element for working with graphs in yFiles WPF. 4 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/02 Creating Graph Elements/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/02 Creating Graph Elements/README.md: -------------------------------------------------------------------------------- 1 | # 02 Creating Graph Elements 2 | 3 | This demo shows how to create the basic graph elements in yFiles WPF. 4 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/03 Managing the Viewport/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/03 Managing the Viewport/README.md: -------------------------------------------------------------------------------- 1 | # 03 Managing the Viewport 2 | 3 | This demo shows how to work with the Viewport. It introduces basic viewport handling such 4 | as zooming and "fit to content". 5 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/04 Customizing Styles/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/04 Customizing Styles/README.md: -------------------------------------------------------------------------------- 1 | # 04 Customizing Styles 2 | 3 | This demo shows how to configure the visual appearance of graph elements (using so called styles). 4 | 5 | 6 | 7 | The visual appearance for each type of graph elements (apart from edge bends) can be 8 | customized through implementations of `IVisualStyle<TModelItem>`s. You can either 9 | set a default style through the `IGraph.NodeDefaults` and `IGraph.EdgeDefaults` 10 | properties on `IGraph`, 11 | which takes effect for all **newly created** elements, or set a specific style for a graph 12 | element, either at creation time with the various `Create/AddXXX` methods and extension methods, or by calling 13 | one of the `IGraph.SetStyle` methods. 14 | 15 | 16 | yFiles WPF already comes with a number of useful styles for most graph element types. 17 | Creating your own custom style is not part of this tutorial, please refer to the various 18 | additional sample demos and the yFiles WPF Developer's Guide. 19 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/05 Placing Labels/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/05 Placing Labels/README.md: -------------------------------------------------------------------------------- 1 | # 05 Placing Labels 2 | 3 | This demo shows how to control label placement with the help of so called label model parameters. 4 | 5 | Usually, label positions are not specified through explicit (absolute or relative) 6 | coordinates. Instead, so called `ILabelModelParameter`s are used instead, that 7 | encode a specific symbolic position in a specific `ILabelModel`. 8 | So for example, `InteriorLabelModel.NorthWest` encodes a label position in the 9 | upper left corner inside the `INode` that owns the label, without having to explicitly 10 | determine the coordinates yourself. 11 | 12 | 13 | 14 | Label models are also used for interactive placement of labels (you can only drag to 15 | valid positions in the given label model) as well as for the various automatic labeling algorithms. 16 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/06 Basic Interaction/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/06 Basic Interaction/README.md: -------------------------------------------------------------------------------- 1 | # 06 Basic Interaction 2 | 3 | This demo shows the default interaction possibilities that are provided by class 4 | `GraphEditorInputMode`. 5 | 6 | 7 | Interaction is handled by so called InputModes. `GraphEditorInputMode` 8 | is the main InputMode that already provides a large number of graph interaction possibilities, 9 | such as moving, deleting, creating, resizing graph elements. 10 | 11 | - To select a single element, just click it with the mouse. Press SHIFT to step 12 | through the different possible hits (e.g. to select a node label inside its owner). 13 | To select multiple elements, either extend an existing selection by pressing CTRL while 14 | clicking, or drag a selection rectangle over all graph elements that you want in your 15 | selection. CTRL-A selects all elements. 16 | - Resizing nodes is done through the handles that appear on selected nodes. 17 | - To move a node or bend, just drag it when it is selected. 18 | - To create an edge bend, click and drag the edge at the desired bend location. 19 | - To create an edge, start dragging anywhere on the unselected source node and stop 20 | dragging on the target node. 21 | - Nodes may specify multiple port locations (by default, only a single port at the 22 | node center exists). 23 | You can either create an edge directly between these port, or later move the source or 24 | target to a different port (just select the edge and drag the edge's source or target 25 | handle). Note that custom port locations are not part of this tutorial step, but are 26 | introduced later. 27 | - To create or edit a label, just press F2 when the owner is selected. 28 | - To move a label, just drag it to the desired location. Note that the valid 29 | positions are determined by the label model for this label and show up as empty 30 | rectangles when you start dragging the label. You can only move a label to one of 31 | these positions. 32 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/07 Undo and Clipboard Support/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/07 Undo and Clipboard Support/README.md: -------------------------------------------------------------------------------- 1 | # 07 Undo and Clipboard Support 2 | 3 | This demo shows how to use undo and clipboard functionality present in yFiles WPF. 4 | 5 | 6 | Note that Clipboard functionality is already enabled by default. Also, CommandBindings for Clipboard 7 | operations and Undo/Redo are active by default, so apart from activating the UndoEngine, you only need have to bind your buttons/menu entries 8 | etc. to the default CommandBindings, as shown in the corresponding XAML 9 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/08 Input and Output/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/08 Input and Output/README.md: -------------------------------------------------------------------------------- 1 | # 08 Input and Output 2 | 3 | This demo shows how to use GraphML I/O functionality. 4 | 5 | 6 | GraphML is the standard file format for yFiles WPF. It is an XML format 7 | that allows for great flexibility when storing custom data. However, note that 8 | these attributes (such as styles or even node locations) are not standardized, 9 | so you probably won't be able to exchange all of them between different graph 10 | libraries, for example. 11 | 12 | Class `GraphControl` already comes with several convenience 13 | methods for reading and writing GraphML (see the various `ImportFromGraphML` 14 | and `ExportToGraphML` overloads. If you want to customize your I/O process 15 | (e.g. to write additional custom data), please see class 16 | `GraphMLIOHandler` 17 | (custom data IO is shown later in this tutorial). 18 | 19 | 20 | The necessary CommandBindings are already available (but disabled by default), 21 | so typically all that needs to be done is to set 22 | `GraphControl.FileOperationsEnabled` to true. 23 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/09 Customizing Behavior/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/09 Customizing Behavior/README.md: -------------------------------------------------------------------------------- 1 | # 09 Customizing Behavior 2 | 3 | This demo presents the `ILookup` interface. Here, it is used 4 | to customize the port handling, i.e. it is used to return a different set 5 | of ports that are available for interactive edge creation. 6 | 7 | 8 | To change an edge to a different port (on the same node), just 9 | select the edge and drag its source or target handle to the new port. The 10 | valid port locations are highlighted when you start dragging. Note that this 11 | demo only allows you to reassign the edge to ports at the same node. 12 | 13 | 14 | `ILookup` is a central concept in yFiles WPF which is used 15 | to customize many aspects of interaction and appearance. Please refer to the 16 | additional bundled sample demos as well as the yFiles WPF Developer's Guide 17 | for many more examples of how to use the `ILookup` pattern. 18 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/10 Grouped Graphs/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/10 Grouped Graphs/README.md: -------------------------------------------------------------------------------- 1 | # 10 Grouped Graphs 2 | 3 | This demo shows how to enable support for grouped (or hierarchically organized) 4 | graphs and presents the default grouping interaction capabilities available 5 | in yFiles WPF. Note that collapse/expand functionality is introduced later in this tutorial. 6 | 7 | 8 | `GraphEditorInputMode` already provides the following 9 | default gestures for grouping/ungrouping: 10 | 11 | - Press CTRL+G to group the currently selected nodes. 12 | - Press CTRL+U to ungroup the currently selected nodes. Note that this 13 | does not automatically shrink the group node or remove it if it would be empty. 14 | - Press SHIFT+CTRL+G to shrink a group node to its minimum size. 15 | - Press SHIFT when dragging nodes into or out of groups to change the graph 16 | hierarchy. 17 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/11 Folding/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/11 Folding/README.md: -------------------------------------------------------------------------------- 1 | # 11 Folding 2 | 3 | This demo shows how to enable collapse/expand functionality for grouped graphs. 4 | This support is provided through class `FoldingManager` 5 | and its support classes. 6 | 7 | 8 | `GraphEditorInputMode` already provides the following 9 | default gestures for collapse/expand: 10 | 11 | - Press CTRL++ to open (expand) a closed group node. 12 | - Press CTRL+- to close (collapse) an open group node. 13 | - Press CTRL+Return to enter (navigate into) a group node. 14 | - Press CTRL+Backspace to exit (navigate out of a group node. 15 | 16 | 17 | 18 | Conceptually, folding is implemented by separating a graph model that 19 | always contains the full (unfolded) information from one or more views where 20 | the folding state is used to dynamically hide/unhide parts of the graph, create 21 | representatives for merged edges etc. Usually, the graph from such a "managed view" 22 | can be used transparently in place of the model graph, however, some care must be 23 | taken when working with graph elements that don't exist explicitly in the model 24 | graph, such as representative edges for multiple edges that connect into a folded 25 | group node. 26 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/12 Binding Data to Graph Elements/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/12 Binding Data to Graph Elements/README.md: -------------------------------------------------------------------------------- 1 | # 12 Binding Data to Graph Elements 2 | 3 | This demo shows how to bind data to graph elements. 4 | 5 | 6 | The usual method to bind arbitrary data to graph elements 7 | is with the help of instances of the `IMapper{K,V}` 8 | interface. This demo uses class `DictionaryMapper{K,V}` 9 | to store the creation time of each node. Also shown is 10 | how to display tool tips for these data items. 11 | 12 | 13 | Note: Since we are using folding, there are actually two graph 14 | instances where we could bind data to. This demo binds data to the items 15 | in the model graph, since we want the data to be associated to each logical 16 | entity in the graph, independent of its presence in the current managed view. 17 | However, since we want to access these values through instances of the managed view, 18 | we can't just use a simple map, but have to query the data through a symbolic name. 19 | 20 | Note: An alternative approach would be to use the `ITagOwner` 21 | interface of the `IModelItem`s to bind a single datum to 22 | graph elements. 23 | 24 | Note: Custom data persistence is shown later in this tutorial. 25 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/13 GraphML IO for Custom Data/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/13 GraphML IO for Custom Data/README.md: -------------------------------------------------------------------------------- 1 | # 13 GraphML IO for Custom Data 2 | 3 | This demo shows how to read and write data that is bound to graph elements 4 | to/from a graphml file. 5 | 6 | 7 | In GraphML, data that is associated with graph elements is stored in 8 | `data` tags. Class `GraphMLIOHandler` provides several convenience 9 | methods to create these tags from a given `IMapper{K,V}` instance, or to 10 | read these data into a mapper instance. 11 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/14 Automatic Graph Layout/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | yWorks.Algorithms.Graph, yWorks.yFilesWPF.Algorithms 4 | 5 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/14 Automatic Graph Layout/README.md: -------------------------------------------------------------------------------- 1 | # 14 Automatic Graph Layout 2 | 3 | This demo shows how to use the layout algorithms in yFiles WPF to automatically 4 | place the graph elements. 5 | 6 | 7 | To use the layout algorithms you have to reference the following 8 | assemblies in addition to `@assembly.Viewer@`: 9 | 10 | - `@assembly.Algorithms@`: This assembly contains the actual layout 11 | and analysis algorithms. 12 | - `@assembly.Adapter@`: This class is necessary to use the layout and 13 | analysis algorithms with the object model in the 14 | yFiles WPF viewer part. 15 | 16 | 17 | Note that this sample loads a sample graph from a file instead of creating it 18 | programmatically, since the graphs from the previous examples 19 | are not really suited for automatic layout. 20 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/14 Automatic Graph Layout/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/15 Snapping/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/15 Snapping/README.md: -------------------------------------------------------------------------------- 1 | # 15 Snapping 2 | 3 | This demo shows how to enable snapping for interactively modified items to snap lines. 4 | This support is provided through class `GraphSnapContext` 5 | and its support classes. 6 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/16 Grid Snapping/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/16 Grid Snapping/README.md: -------------------------------------------------------------------------------- 1 | # 16 Grid Snapping 2 | 3 | This demo shows how to enable use an interactive magnetic grid when elements are moved. 4 | This support is provided through class `GraphSnapContext` 5 | and its support classes. 6 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/17 Orthogonal Edge Creation/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/01 Getting Started/17 Orthogonal Edge Creation/README.md: -------------------------------------------------------------------------------- 1 | # 17 Orthogonal Edge Creation 2 | 3 | This demo shows how to create and edit edges in an orthogonal fashion. 4 | This support is provided through class `OrthogonalEdgeEditingContext`, 5 | `CreateEdgeInputMode` 6 | and its support classes. 7 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/01 Custom Node Style/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/01 Custom Node Style/README.md: -------------------------------------------------------------------------------- 1 | # 01 Custom Node Style 2 | 3 | Shows how to create a custom node style. 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/01 Custom Node Style/Resources/edit_label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/tutorials/02 Custom Styles/01 Custom Node Style/Resources/edit_label.png -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/02 Node Color/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/02 Node Color/README.md: -------------------------------------------------------------------------------- 1 | # 02 Node Color 2 | 3 | Shows how to create properties so that the style can be changed dynamically. 4 | 5 | 6 | In this case the background color of the nodes can be set via 7 | the Background property. 8 | 9 | 10 | Please note that the color is the same for all nodes which share one style instance. 11 | To set the color differently for another node, the node has to be assigned a different 12 | style instance. 13 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/03 UpdateVisual and RenderDataCache/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/03 UpdateVisual and RenderDataCache/README.md: -------------------------------------------------------------------------------- 1 | # 03 UpdateVisual and RenderDataCache 2 | 3 | Shows how to implement high-performance rendering for nodes. 4 | 5 | 6 | To do this you need to implement UpdateVisual() which is called when 7 | the Container decides to update the visual representation of a node. 8 | In contrast to CreateVisual(), we try to re-use the old visual instead 9 | of creating a new one. 10 | 11 | 12 | 13 | The RenderDataCache class saves the relevant data for creating a visual. 14 | UpdateVisual() checks whether this data has changed. If it hasn't changed, 15 | the old visual can be returned, otherwise the whole or part of the 16 | visual has to be re-rendered. 17 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/03 UpdateVisual and RenderDataCache/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/04 IsInside/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/04 IsInside/README.md: -------------------------------------------------------------------------------- 1 | # 04 IsInside 2 | 3 | Shows how to override IsInside() and GetIntersection() in SimpleAbstractNodeStyle. 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/05 Hit Test/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/05 Hit Test/README.md: -------------------------------------------------------------------------------- 1 | # 05 Hit Test 2 | 3 | Shows how to override IsHit() and IsInBox() in SimpleAbstractNodeStyle. 4 | 5 | 6 | IsHit() is used for mouse click detection. It should return true if the tested point is inside 7 | the node. IsHit() should take into account the imprecision radius specified in the CanvasContext 8 | (HitTestRadius). 9 | 10 | 11 | 12 | IsInBox() is used for marquee detection. It should return true if the node intersects with the box 13 | to test or lies completely inside. Also it should be true if the tested box lies completely inside the node. 14 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/06 GetBounds/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/06 GetBounds/README.md: -------------------------------------------------------------------------------- 1 | # 06 GetBounds 2 | 3 | Shows how to override the SimpleAbstractNodeStyle.GetBounds() method. 4 | 5 | 6 | Also, GetOutline() is implemented, so implementations of GetIntersection(), IsInside() 7 | and IsHit() aren't necessary any more. 8 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/07 Dropshadow Performance/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/07 Dropshadow Performance/README.md: -------------------------------------------------------------------------------- 1 | # 07 Dropshadow Performance 2 | 3 | Perhaps you noticed the bad rendering performance in the previous 4 | steps when zooming in on one node so it gets very big. 5 | 6 | 7 | Shows how to pre-render the drop shadow of nodes in order to 8 | improve the rendering performance in comparison to the built-in 9 | effect. 10 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/07 Dropshadow Performance/app.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/08 Edge from Node to Label/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/08 Edge from Node to Label/README.md: -------------------------------------------------------------------------------- 1 | # 08 Edge from Node to Label 2 | 3 | Shows how to visually connect a node to its label(s) by means of edges. 4 | 5 | 6 | These edges, however, are just visual items and do not respond to user 7 | interaction. 8 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/09 IsVisible/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/09 IsVisible/README.md: -------------------------------------------------------------------------------- 1 | # 09 IsVisible 2 | 3 | Shows how to override the IsVisible() method of SimpleAbstractNodeStyle. 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/10 Custom Label Style/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/10 Custom Label Style/README.md: -------------------------------------------------------------------------------- 1 | # 10 Custom Label Style 2 | 3 | Shows how to create a custom label style. 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/11 Label Preferred Size/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/11 Label Preferred Size/README.md: -------------------------------------------------------------------------------- 1 | # 11 Label Preferred Size 2 | 3 | Shows how to override the GetPreferredSize() method to set the size of 4 | the label dependent on the size of its text. 5 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/12 High Performance Rendering of Label/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/12 High Performance Rendering of Label/README.md: -------------------------------------------------------------------------------- 1 | # 12 High Performance Rendering of Label 2 | 3 | Shows how to implement high-performance rendering for labels. 4 | 5 | 6 | To do this, you need to implement UpdateVisual() which is called when 7 | the Container decides to update the visual representation of a label. 8 | In contrast to CreateVisual(), we try to re-use the old visual instead 9 | of creating a new one. 10 | 11 | 12 | 13 | The RenderDataCache class saves the relevant data for creating a visual. 14 | UpdateVisual() checks whether this data has changed. If it hasn't changed, 15 | the old visual can be returned, otherwise the whole or part of the 16 | visual has to be re-rendered. 17 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/13 Label Edit Button/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/13 Label Edit Button/README.md: -------------------------------------------------------------------------------- 1 | # 13 Label Edit Button 2 | 3 | Shows how to implement a button within a label to open the label editor. 4 | 5 | 6 | The button is defined in MySimpleLabelStyle so it is available in all labels. 7 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/13 Label Edit Button/Resources/edit_label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/tutorials/02 Custom Styles/13 Label Edit Button/Resources/edit_label.png -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/14 Button Visibility/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/14 Button Visibility/README.md: -------------------------------------------------------------------------------- 1 | # 14 Button Visibility 2 | 3 | Shows how to hide the button dependent on the zoom level. 4 | 5 | 6 | If the zoom level gets too small, the button won't get drawn. 7 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/14 Button Visibility/Resources/edit_label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/tutorials/02 Custom Styles/14 Button Visibility/Resources/edit_label.png -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/15 Using Data in Label Tag/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/15 Using Data in Label Tag/README.md: -------------------------------------------------------------------------------- 1 | # 15 Using Data in Label Tag 2 | 3 | Shows how to use data from a business object, which is stored in the label's tag, 4 | for rendering. 5 | 6 | 7 | This mechanism also applies to nodes, edges and ports. 8 | 9 | 10 | In this example, a dummy business object, which only defines a color, is stored. This color 11 | is used to set the background of the label. You can store any object you like in the tag 12 | in order to use its data in the style. 13 | 14 | 15 | 16 | Note that, in contrast to MySimpleNodeStyle, you can change the color of each label separately 17 | without affecting other labels that use the same style instance. 18 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/15 Using Data in Label Tag/Resources/edit_label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/tutorials/02 Custom Styles/15 Using Data in Label Tag/Resources/edit_label.png -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/16 Custom Edge Style/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/16 Custom Edge Style/README.md: -------------------------------------------------------------------------------- 1 | # 16 Custom Edge Style 2 | 3 | Shows how to create a custom edge style which allows to specify the edge 4 | thickness by setting a property on the style. 5 | 6 | 7 | The CreateVisual() and UpdateVisual methods are implemented like in 8 | MySimpleNodeStyle and MySimpleLabelStyle. 9 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/16 Custom Edge Style/Resources/edit_label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/tutorials/02 Custom Styles/16 Custom Edge Style/Resources/edit_label.png -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/17 Edge HitTest/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/17 Edge HitTest/README.md: -------------------------------------------------------------------------------- 1 | # 17 Edge HitTest 2 | 3 | Shows how to take the thickness of the edge into account when checking 4 | if the edge was clicked. 5 | 6 | 7 | For the purpose of this demo, the thickness of the edges is set to a high value. 8 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/17 Edge HitTest/Resources/edit_label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/tutorials/02 Custom Styles/17 Edge HitTest/Resources/edit_label.png -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/18 Edge Cropping/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/18 Edge Cropping/README.md: -------------------------------------------------------------------------------- 1 | # 18 Edge Cropping 2 | 3 | Shows how to crop an edge at the node bounds. 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/18 Edge Cropping/Resources/edit_label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/tutorials/02 Custom Styles/18 Edge Cropping/Resources/edit_label.png -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/19 Animated Edge Selection/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/19 Animated Edge Selection/README.md: -------------------------------------------------------------------------------- 1 | # 19 Animated Edge Selection 2 | 3 | Shows how to change the style of an edge if the edge is selected. 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/19 Animated Edge Selection/Resources/edit_label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/tutorials/02 Custom Styles/19 Animated Edge Selection/Resources/edit_label.png -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/20 Custom Arrow/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/20 Custom Arrow/README.md: -------------------------------------------------------------------------------- 1 | # 20 Custom Arrow 2 | 3 | Shows how to create a custom arrow. 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/20 Custom Arrow/Resources/edit_label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/tutorials/02 Custom Styles/20 Custom Arrow/Resources/edit_label.png -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/21 Arrow Thickness/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/21 Arrow Thickness/README.md: -------------------------------------------------------------------------------- 1 | # 21 Arrow Thickness 2 | 3 | Shows how to render the arrow dependent on a property of the edge it belongs 4 | to. 5 | 6 | 7 | In this case, the thickness of the edge is considered when creating the path that 8 | defines the outline of the arrow. 9 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/21 Arrow Thickness/Resources/edit_label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/tutorials/02 Custom Styles/21 Arrow Thickness/Resources/edit_label.png -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/22 Custom Ports/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/22 Custom Ports/README.md: -------------------------------------------------------------------------------- 1 | # 22 Custom Ports 2 | 3 | This tutorial step shows how to implement a custom port style. 4 | 5 | 6 | In this case the port is a transparent gray circle with radius 1. 7 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/22 Custom Ports/Resources/edit_label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/tutorials/02 Custom Styles/22 Custom Ports/Resources/edit_label.png -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/23 Style Decorator/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/23 Style Decorator/README.md: -------------------------------------------------------------------------------- 1 | # 23 Style Decorator 2 | 3 | This tutorial step shows how to create a style that decorates an existing style. 4 | 5 | 6 | In this case the node style is wrapped. Other graph item styles can be wrapped the same way. 7 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/23 Style Decorator/Resources/edit_label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yWorks/yfiles-for-wpf-demos/3f33c583abcbd761f99f22f33972c19f290e5abf/tutorials/02 Custom Styles/23 Style Decorator/Resources/edit_label.png -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/24 Zoom Invariant Label Rendering/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/24 Zoom Invariant Label Rendering/README.md: -------------------------------------------------------------------------------- 1 | # 24 Zoom Invariant Label Rendering 2 | 3 | This tutorial step shows how to implement a zoom invariant label style. 4 | In fact, it even shows how an existing label style is wrapped to be zoom invariant. 5 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/25 Bridge Support/Properties/licenses.licx: -------------------------------------------------------------------------------- 1 | yWorks.Controls.CanvasControl, yWorks.yFilesWPF.Viewer 2 | yWorks.Controls.GraphControl, yWorks.yFilesWPF.Viewer 3 | 4 | -------------------------------------------------------------------------------- /tutorials/02 Custom Styles/25 Bridge Support/README.md: -------------------------------------------------------------------------------- 1 | # 25 Bridge Support 2 | 3 | Shows how to enable bridges for a custom edge style. 4 | 5 | 6 | The edge style which was developed in the earlier tutorial steps has been modified to support bridges for edge crossings. 7 | --------------------------------------------------------------------------------