예제 #1
0
        protected void LeaveUnhoveredFragments(MouseState mouse)
        {
            var pos = mouse.Position;

            List <Fragment> leavedFragments = null;

            foreach (var fragment in MouseHoverFragments)
            {
                if (!mouse.IsOverView || !fragment.Contains(pos))
                {
                    if (fragment.IsMouseHover)
                    {
                        fragment.MouseLeave?.Invoke();
                        fragment.IsMouseHover = false;
                    }

                    if (leavedFragments == null)
                    {
                        leavedFragments = new List <Fragment>();
                    }
                    leavedFragments.Add(fragment);
                }
            }

            leavedFragments?.ForEach(f => MouseHoverFragments.Remove(f));
        }
예제 #2
0
 private void SetMouseHoverCore(Fragment fragment)
 {
     fragment.IsMouseHover = true;
     fragment.MouseEnter();
     MouseHoverFragments.Add(fragment);
 }