private void EmbedDeasktopView_KeyDown(object sender, KeyEventArgs e)
        {
            var _key = Win32Api.GetCharFromKey(e.Key).ToString().ToUpper();

            if (string.IsNullOrWhiteSpace(_key))
            {
                return;
            }
            double       offset       = 0.0;
            ScrollViewer scrollViewer = ControlsHelper.FindChild <ScrollViewer>(this.AppSwitchList, "PART_ScrollViewer");
            var          elementList  = ControlsHelper.FindVisualChildren <Border>(this.AppSwitchList).ToList();
            bool         isFind       = false;

            for (int i = 0; i < elementList.Count; i++)
            {
                var element = elementList[i];
                if (isFind)
                {
                    break;
                }
                if (element.Tag != null)
                {
                    offset += element.ActualHeight;
                    if (element.Tag.ToString().Equals(_key))
                    {
                        offset -= element.ActualHeight;
                        scrollViewer.ScrollToVerticalOffset(offset);
                        isFind = true;
                    }
                }
            }
            this.KeyDownText.Text        = _key;
            this.KeyDownPanel.Visibility = Visibility.Visible;
        }
Exemplo n.º 2
0
        private void OnHookKeyDown(object sender, HookEventArgs e)
        {
            SetKeyDown(e.Key);
            if (IsKeyDown(Key.PrintScreen))
            {
                var screenCut = new ScreenCut()
                {
                    Topmost = true
                };
                screenCut.Activate();
                screenCut.Closing += delegate
                {
                    SetKeyUp(Key.PrintScreen);
                };
                screenCut.ShowDialog();
            }
            else
            {
                if (keys.Count == 2 && IsKeyDown(Key.LeftAlt))
                {
                    var _key = Win32Api.GetCharFromKey(e.Key).ToString().ToUpper();
                    if (string.IsNullOrWhiteSpace(_key))
                    {
                        return;
                    }
                    var offset       = 0.0;
                    var scrollViewer = ControlsHelper.FindChild <ScrollViewer>(AppSwitchList, "PART_ScrollViewer");
                    var elementList  = ControlsHelper.FindVisualChildren <Border>(AppSwitchList).ToList();
                    var isFind       = false;
                    for (var i = 0; i < elementList.Count; i++)
                    {
                        var element = elementList[i];
                        if (isFind)
                        {
                            break;
                        }
                        if (element.Tag != null)
                        {
                            offset += element.ActualHeight;
                            if (element.Tag.ToString().Equals(_key))
                            {
                                offset -= element.ActualHeight;
                                scrollViewer.ScrollToVerticalOffset(offset);
                                isFind = true;
                            }
                        }
                    }

                    KeyDownText.Text        = _key;
                    KeyDownPanel.Visibility = Visibility.Visible;
                }
            }
        }