Bonjour

Je cherche à ajouter sur une application Winform (ou WPF) un graph tel qu'illustré dans l'image jointe. des vertex et edge assez simples avec une image propre à chaque nœud, des nœuds que l'utilisateur pourrait ajouter, déplacer et éditer en double cliquant dessus pour changer des caractéristiques.

Nom : graph.JPG
Affichages : 237
Taille : 55,2 Ko

J'ai repéré la librairie GraphX qui semble offrir un magnifique outil mais après 5h de galères je n'arrive toujours pas à tester le moindre bout de code !
J'ai installé le nuget correspondant puis tenté un test en suivant la doc ici
http://www.panthernet.ru/en/projects...x-doc-tutorial

Mon soucis est que je n'arrive pas à construire un projet qui tourne, il manque des déclarations de partout qui ne sont pas décrites dans la doc. Débutant en WPF je ne suis pas très l'aise pour recoller les bouts qui manquent

J'ai un fichier MainWindows.xaml.cs qui contient ceci (ce qui est proposé par la doc de graphX). a noter pas moins de 4 using pour que ça digère le code !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using GraphX.Controls;     //ajouté pour graphX
using GraphX.Measure;  //ajouté pour graphX
using GraphX.PCL.Common.Models   ;  //ajouté pour graphX
using GraphX.PCL.Logic.Models;  //ajouté pour graphX
using QuickGraph;  //ajouté pour graphX
 
 
namespace testGraphX2
{
    /// <summary>
    /// Logique d'interaction pour MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
    }
 
    //Layout visual class
    public class GraphAreaExample : GraphArea<DataVertex, DataEdge, BidirectionalGraph<DataVertex, DataEdge>> { }
 
    //Graph data class
    public class GraphExample : BidirectionalGraph<DataVertex, DataEdge> { }
 
    //Logic core class
    public class GXLogicCoreExample : GXLogicCore<DataVertex, DataEdge, BidirectionalGraph<DataVertex, DataEdge>> { }
 
    //Vertex data object
    public class DataVertex : VertexBase
    {
        /// <summary>
        /// Some string property for example purposes
        /// </summary>
        public string Text { get; set; }
 
        public override string ToString()
        {
            return Text;
        }
    }
 
    //Edge data object
    public class DataEdge : EdgeBase<DataVertex>
    {
        public DataEdge(DataVertex source, DataVertex target, double weight = 1)
            : base(source, target, weight)
        {
        }
 
        public DataEdge()
            : base(null, null, 1)
        {
        }
 
        public string Text { get; set; }
 
        public override string ToString()
        {
            return Text;
        }
    }
}
Ensuite j'ai un MainWindows.xaml avec (toujours ce que propose la doc de graphX pour tester)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<Window x:Class="testGraphX2.MainWindows"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:graphxctrl="clr-namespace:testGraphX2;assembly=testGraphX2"
        xmlns:local="clr-namespace:testGraphX2"  
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <graphxctrl:ZoomControl x:Name="gg_zoomctrl">
            <local:GraphAreaExample x:Name="gg_Area"/>
        </graphxctrl:ZoomControl>
    </Grid>
</Window>
et là je bloque, pas moyen de trouver comment lui faire digérer graphxctrl:ZoomControl qu'il ne voit pas dans l'espace de nom :-(

du coup je ne suis pas allé plus loin dans le tuto de la doc


----------------------------------
J'ai essayé de tester l'application de démo ShowcaseApp espérant pouvoir tester la librairie dont les captures d’écran sont alléchantes mais quand j'ouvre les projets de démo du zip récupéré sur github ici https://github.com/panthernet/GraphX, Visual studio community 2015 et VS 2013 express me disent que le projet n'est pas compatible, du coup je ne peux pas ouvrir, tester et peut être voir et comprendre le code qui est derrière la démo. Je ne comprends pas ce qui peut ne pas être compatible et je ne vois pas de .exe pour tester directement.


Merci par avance pour votre aide pour débloquer mon essai (à moins que cette lib soit une usine à gaz inexploitable et qu'un meilleur choix s'offre à moi :-p)