private async void LyricsFileInfo_Button_Click(object sender, RoutedEventArgs e) { LyricsFileInfo_Button.IsEnabled = false; await LyricsFileInfo_ContentDialog.ShowAsync(); LyricsFileInfo_Button.IsEnabled = true; }
private async void WindowKeyDown(object sender, GlobalKeyEventArgs e) { _isPressCtrl = e.IsPressCtrl; _isPressShift = e.IsPressShift; if (e.IsPressCtrl) { switch (e.Key) { case VirtualKey.Z: if (_viewModel.CanUndo) { _viewModel.Undo(1); } break; case VirtualKey.Y: if (_viewModel.CanRedo) { _viewModel.Redo(1); } break; } } if (!e.IsInputing) { switch (e.Key) { case VirtualKey.I: LyricsContent_TextBox.Focus(FocusState.Keyboard); break; case VirtualKey.Space: Focus(FocusState.Pointer); if (Lyrics_ListView.SelectedItems.Any()) { _viewModel.Move(Player.Position); Lyrics_ListView.SelectedIndex = Lyrics_ListView.SelectedIndex < Lyrics_ListView.Items.Count - 1 ? Lyrics_ListView.SelectedIndex + 1 : -1; } else { AddLyrics(); } break; case VirtualKey.C: _viewModel.Copy(Player.Position); break; case VirtualKey.Delete: int selectedId = Lyrics_ListView.SelectedIndex; _viewModel.Remove(); if (selectedId < Lyrics_ListView.Items.Count) { Lyrics_ListView.SelectedIndex = selectedId; } break; case VirtualKey.M: if (Lyrics_ListView.SelectedItem is Lyric) { InputSubmitOperations_ComboBox.SelectedIndex = 1; LyricsContent_TextBox.Focus(FocusState.Keyboard); } break; case VirtualKey.S: _viewModel.Sort(_viewModel.LyricItems); break; case VirtualKey.G: if (Lyrics_ListView.SelectedItem is Lyric lyric) { GoToLyricTime(lyric); } break; case VirtualKey.Up: Focus(FocusState.Pointer); if (!_lyricsListGotFocus) { Lyrics_ListView.SelectedIndex = Lyrics_ListView.SelectedIndex > -1 ? Lyrics_ListView.SelectedIndex - 1 : Lyrics_ListView.Items.Count - 1; } break; case VirtualKey.Down: Focus(FocusState.Pointer); if (!_lyricsListGotFocus) { Lyrics_ListView.SelectedIndex = Lyrics_ListView.SelectedIndex < Lyrics_ListView.Items.Count - 1 ? Lyrics_ListView.SelectedIndex + 1 : -1; } break; } } switch (e.Key) { case VirtualKey.Escape: this.Focus(FocusState.Pointer); break; case VirtualKey.I: if (_isPressCtrl) { await LyricsFileInfo_ContentDialog.ShowAsync(); } break; } }