/// <summary> /// /// </summary> /// <param name="control"></param> /// <param name="toggle"></param> public virtual void SelectVertex(VertexControl control, bool toggle) { if (control == null) { return; } VertexBase vertex = (VertexBase)control.Vertex; if (selected_vertices_.Contains(vertex)) { if (toggle) { control.SetValue(Selector.IsSelectedProperty, false); DragBehaviour.SetIsTagged(control, false); selected_vertices_.Remove(vertex); vertex_controls_.Remove(vertex); } } else { control.SetValue(Selector.IsSelectedProperty, true); DragBehaviour.SetIsTagged(control, true); selected_vertices_.Add(vertex); vertex_controls_.Add(vertex, control); } }
private static void SelectVertex(DependencyObject vc) { if (DragBehaviour.GetIsTagged(vc)) { HighlightBehaviour.SetHighlighted(vc, false); DragBehaviour.SetIsTagged(vc, false); } else { HighlightBehaviour.SetHighlighted(vc, true); DragBehaviour.SetIsTagged(vc, true); } }
/// <summary> /// /// </summary> public virtual void ClearVertexSelection() { if (selected_vertices_.Count > 0) { foreach (KeyValuePair <VertexBase, VertexControl> entry in vertex_controls_) { entry.Value.SetValue(Selector.IsSelectedProperty, false); DragBehaviour.SetIsTagged(entry.Value, false); } selected_vertices_.Clear(); vertex_controls_.Clear(); } }
private void SelectVertex(VertexControl vc) { if (_selectedVertices.Contains(vc)) { _selectedVertices.Remove(vc); HighlightBehaviour.SetHighlighted(vc, false); DragBehaviour.SetIsTagged(vc, false); } else { _selectedVertices.Add(vc); HighlightBehaviour.SetHighlighted(vc, true); DragBehaviour.SetIsTagged(vc, true); } }
/// <summary> /// /// </summary> /// <param name="control"></param> public virtual void UnselectVertex(VertexControl control) { if (control == null) { return; } VertexBase vertex = (VertexBase)control.Vertex; control.SetValue(Selector.IsSelectedProperty, false); DragBehaviour.SetIsTagged(control, false); selected_vertices_.Remove(vertex); vertex_controls_.Remove(vertex); }
private void ClearSelectMode(bool soft = false) { if (_selectedVertices != null && _selectedVertices.Any()) { _selectedVertices.ForEach(a => { HighlightBehaviour.SetHighlighted(a, false); DragBehaviour.SetIsTagged(a, false); }); _selectedVertices.Clear(); } if (!soft) { graphArea.SetVerticesDrag(false); } }
/// <summary> /// Очищает режим выделения. /// </summary> /// <param name="soft"></param> private void ClearSelectMode(bool soft = false) { graphArea.VertexList.Values .Where(DragBehaviour.GetIsTagged) .ToList() .ForEach(a => { HighlightBehaviour.SetHighlighted(a, false); DragBehaviour.SetIsTagged(a, false); }); if (!soft) { graphArea.SetVerticesDrag(false); } }
/// <summary> /// Select vertex by setting its tag and highlight value /// </summary> /// <param name="vc">VertexControl object</param> private void SelectVertex(DependencyObject vc) { if (DragBehaviour.GetIsTagged(vc)) { HighlightBehaviour.SetHighlighted(vc, false); DragBehaviour.SetIsTagged(vc, false); vc.ClearValue(DragBehaviour.XSnapModifierProperty); vc.ClearValue(DragBehaviour.YSnapModifierProperty); } else { HighlightBehaviour.SetHighlighted(vc, true); DragBehaviour.SetIsTagged(vc, true); DragBehaviour.SetXSnapModifier(vc, ExaggeratedSnappingXModifier); DragBehaviour.SetYSnapModifier(vc, ExaggeratedSnappingYModifier); } }