public void Initialize(Graph graph)
 {
     // Отписываемся от текущего графа, если нужно
     if (Graph != null)
         Graph.GraphChainged -= OnGraphChanged;
     Graph = graph;
     // Подписываемся на изменение графа, чтоб, если что, его перерисовывать
     graph.GraphChainged += OnGraphChanged;
     // Задаём настройки отображения графа
     InteractiveMode = InteractiveMode.Interactive;
     IsVerticesMoving = true;
     IsInteractiveUpdating = true;
     // Создаём под изображение битмап, чтобы оно не стиралось после перерисовки
     Image = new Bitmap(Width, Height);
     // Создаём объекты для рисования элементов графа
     VertexDrawer = new CircleVertexDrawer(Settings);
     if (Graph.IsDirected)
         EdgeDrawer = new DirectedLineEdgeDrawer(Settings);
     else
         EdgeDrawer = new UndirectedLineEdgeDrawer(Settings);
     // Обнуляем подсвеченные вершину и ребро
     SelectedVertex = null;
     SelectedEdge = null;
     // Рисуем граф и запрашиваем перерисовку контрола
     DrawGraph();
 }
Ejemplo n.º 2
0
 public void Initialize(Graph graph)
 {
     // Отписываемся от текущего графа, если нужно
     if (Graph != null)
     {
         Graph.GraphChainged -= OnGraphChanged;
     }
     Graph = graph;
     // Если графа нет - всё
     if (graph == null)
     {
         Invalidate();
         return;
     }
     // Подписываемся на изменение графа, чтоб, если что, его перерисовывать
     graph.GraphChainged += OnGraphChanged;
     // Задаём настройки отображения графа
     InteractiveMode       = InteractiveMode.Interactive;
     IsVerticesMoving      = true;
     IsInteractiveUpdating = true;
     // Создаём объекты для рисования элементов графа
     VertexDrawer = new CircleVertexDrawer(Settings);
     if (Graph.IsDirected)
     {
         EdgeDrawer = new DirectedLineEdgeDrawer(Settings);
     }
     else
     {
         EdgeDrawer = new UndirectedLineEdgeDrawer(Settings);
     }
     // Обнуляем подсвеченные вершину и ребро
     SelectedVertex = null;
     SelectedEdge   = null;
     // Запрашиваем перерисовку контрола
     Invalidate();
 }