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(); }
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(); }