void OnMouseMoved(object sender, MouseMoveEventArgs args) { IHoverable touching = Find(args.As()); if (MouseHovering != touching) { touching?.OnMouseHovered(new MouseHover(args, MouseHover.Type.enter)); MouseHovering?.OnMouseHovered(new MouseHover(args, MouseHover.Type.exit)); MouseHovering = touching; } else { MouseHovering?.OnMouseHovered(new MouseHover(args, MouseHover.Type.roam)); } }
public MouseHover(MouseMoveEventArgs args, Type type) { point = args.As(); this.type = type; }