private void treePatterns_PreviewKeyDown()

in src/AccessibilityInsights.SharedUx/Controls/PatternInfoControl.xaml.cs [234:254]


        private void treePatterns_PreviewKeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Right && Keyboard.FocusedElement is TreeViewItem tvi && (tvi.IsExpanded || tvi.Items.Count == 0))
            {
                // Right arrow: first press expands; second press goes to button
                var header = tvi.Template.FindName("PART_Header", tvi) as ContentPresenter;
                var btn = header.ContentTemplate.FindName("buttonAction", header) as Button;
                e.Handled = btn == null ? false : btn.Focus();
            }
            else if (e.Key == Key.Right && Keyboard.FocusedElement is Button)
            {
                // right arrow on button shouldn't do anything
                e.Handled = true;
            }
            else if (e.Key == Key.Left && Keyboard.FocusedElement is Button btn &&
                btn.TemplatedParent is ContentPresenter header && header.TemplatedParent is TreeViewItem tvi2)
            {
                // left arrow from button goes back to treeviewitem
                e.Handled = tvi2.Focus();
            }
        }