Example #1
0
        protected override void RefreshElements()
        {
            if (_mapControl == null)
            {
                return;
            }

            if (!IsActive)
            {
                RemoveElements();
                _state = RulerState.None;
                return;
            }

            switch (_state)
            {
            case RulerState.None:
                RemoveElements();
                break;

            case RulerState.SingleMarker:
                if (!_mapControl.UpperLayer.Children.Contains(_p1))
                {
                    _mapControl.UpperLayer.Children.Add(_p1);
                }
                _mapControl.UpperLayer.Children.Remove(_p2);
                _mapControl.UpperLayer.Children.Remove(_line);
                _mapControl.UpperLayer.Children.Remove(_label);
                break;

            case RulerState.Full:
                if (!_mapControl.UpperLayer.Children.Contains(_label))
                {
                    _mapControl.UpperLayer.Children.Add(_label);
                }
                if (!_mapControl.UpperLayer.Children.Contains(_line))
                {
                    _mapControl.UpperLayer.Children.Add(_line);
                }
                if (!_mapControl.UpperLayer.Children.Contains(_p1))
                {
                    _mapControl.UpperLayer.Children.Add(_p1);
                }
                if (!_mapControl.UpperLayer.Children.Contains(_p2))
                {
                    _mapControl.UpperLayer.Children.Add(_p2);
                }
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
Example #2
0
 private void SetNextState()
 {
     if (_state == RulerState.None)
     {
         _state = RulerState.SingleMarker;
     }
     else if (_state == RulerState.SingleMarker)
     {
         _state = RulerState.Full;
     }
     else if (_state == RulerState.Full)
     {
         _state = RulerState.SingleMarker;
     }
 }
Example #3
0
 protected override void Reset()
 {
     _state = RulerState.None;
 }