private void DoCommand(ListBoxItem item) { Debug.WriteLine("DoCommand({0})", item.Content, 0); CommandKey ck = item.Resources["Cmd"] as CommandKey; if (ck != null) { SlideShowWindow owner = Owner as SlideShowWindow; if (owner != null) { owner.KeyCommand((Key)ck.KbKey); } } Close(); }
protected override void OnKeyDown(KeyEventArgs e) { switch (e.Key) { case Key.Escape: Close(); break; // If these made it here, the ListBox doesn't have focus case Key.Up: case Key.Down: case Key.Right: case Key.Left: ((ListBoxItem)fListBox.Items[0]).Focus(); e.Handled = true; break; case Key.Enter: if (fListBox.SelectedItems.Count > 0) { ListBoxItem item = fListBox.SelectedItems[0] as ListBoxItem; if (item != null) { DoCommand(item); } } e.Handled = true; break; default: { SlideShowWindow owner = Owner as SlideShowWindow; if (owner != null) { if (owner.KeyCommand(e.Key)) { e.Handled = true; Close(); } } } base.OnKeyDown(e); break; } }