Exemplo n.º 1
0
        private void BindSocketPopup(ItemDisplayViewModel vm)
        {
            UIElement socket       = null;
            bool      isKeyPressed = false;

            Action DisplaySocket = () =>
            {
                if (socket == null)
                {
                    socket = vm.GetSocket(this.IsQuadStash);
                }

                if (!MainGrid.Children.Contains(socket))
                {
                    MainGrid.Children.Add(socket);
                }
            };

            MainGrid.MouseEnter += (o, ev) =>
            {
                DisplaySocket();
            };

            MainGrid.MouseLeave += (o, ev) =>
            {
                if (!isKeyPressed)
                {
                    MainGrid.Children.Remove(socket);
                }
            };

            MainWindow mainWindow = Application.Current.Windows.OfType <MainWindow>().FirstOrDefault();

            mainWindow.KeyDown += (o, ev) =>
            {
                if ((ev.SystemKey == Key.LeftAlt) ||
                    (ev.SystemKey == Key.RightAlt))
                {
                    isKeyPressed = true;

                    DisplaySocket();
                }
            };

            mainWindow.KeyUp += (o, ev) =>
            {
                if (((Keyboard.GetKeyStates(Key.LeftAlt) == KeyStates.None) || (Keyboard.GetKeyStates(Key.LeftAlt) == KeyStates.Toggled)) &&
                    ((Keyboard.GetKeyStates(Key.RightAlt) == KeyStates.None) || (Keyboard.GetKeyStates(Key.RightAlt) == KeyStates.Toggled)))
                {
                    isKeyPressed = false;

                    if (!MainGrid.IsMouseOver)
                    {
                        MainGrid.Children.Remove(socket);
                    }
                }
            };
        }
Exemplo n.º 2
0
        private void BindSocketPopup(ItemDisplayViewModel vm)
        {
            UIElement socket = null;

            MainGrid.MouseEnter += (o, ev) =>
            {
                if (socket == null)
                {
                    socket = vm.GetSocket();
                }

                if (!MainGrid.Children.Contains(socket))
                {
                    MainGrid.Children.Add(socket);
                }
            };

            MainGrid.MouseLeave += (o, ev) => MainGrid.Children.Remove(socket);
        }