private string WhatElement(IHitTestable clickedElement)
        {
            if (clickedElement is AxisBase axis)
            {
                return((axis.IsXAxis ? "X" : "Y") + $"Axis, Type={axis.GetType().Name}, Id={axis.Id}, Alignment={axis.AxisAlignment}");
            }
            else if (clickedElement is IChartModifierSurface)
            {
                return("The inner chart surface");
            }

            return(null);
        }
Beispiel #2
0
        public void Update()
        {
            if (_lastHitTest != null)
            {
                if (MouseManager.IsDown(MouseButton.Left))
                {
                    var test = _lastHitTest.HitTest();
                    if (test.IsHit)
                    {
                        return;
                    }
                    _lastHitTest = null;
                }

                _lastHitTest = null;
            }

            if (_draggable.HitTest().IsHit)
            {
                var delta = _draggable.GetMoveDelta();
                _draggable.InvalidateDelta();
                var x = ((int)(CleanRect.X - delta.X)).Clamp(0, _mainWindow.Width - CleanRect.Width);
                var y = ((int)(CleanRect.Y - delta.Y)).Clamp(0, _mainWindow.Height - CleanRect.Height);
                X = x;
                Y = y;
                _draggable.SetRect(new Rectangle(_captionBarRect.Left, _captionBarRect.Top, _captionBarRect.Width - Ui.CaptionHeight - BorderSize, _captionBarRect.Height));
                SetRect(new Rectangle(X, Y, Width, Height));
                IsDirty = true;
                return;
            }

            _ = _closeButton.HitTest();


            for (var i = _controls.Count - 1; i > -1; i--)
            {
                var test = _controls[i].HitTest();
                if (!test.IsHit)
                {
                    continue;
                }
                _lastHitTest = test.Control;
                return;
            }
        }
 private HitBox(bool isHit, IHitTestable control)
 {
     IsHit   = isHit;
     Control = control;
 }
 public static HitBox Hit(IHitTestable control)
 {
     return(new HitBox(true, control));
 }