private void ViewModelOnScrollRequest(AnimeItemViewModel item, bool select = false)
        {
            switch (ViewModel.DisplayMode)
            {
            case AnimeListDisplayModes.IndefiniteCompactList:
                AnimeCompactItemsIndefinite.ScrollIntoView(item);
                if (select)
                {
                    AnimeCompactItemsIndefinite.SelectedItem = item;
                    AnimeCompactItemsIndefinite.Focus(FocusState.Pointer);
                }
                break;

            case AnimeListDisplayModes.IndefiniteList:
                AnimesItemsIndefinite.ScrollIntoView(item);
                if (select)
                {
                    AnimesItemsIndefinite.SelectedItem = item;
                    AnimesItemsIndefinite.Focus(FocusState.Pointer);
                }
                break;

            case AnimeListDisplayModes.IndefiniteGrid:
                AnimesGridIndefinite.ScrollIntoView(item);
                if (select)
                {
                    AnimesGridIndefinite.SelectedItem = item;
                    AnimesGridIndefinite.Focus(FocusState.Pointer);
                }
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
        private async void AnimesGridIndefinite_OnItemClick(object sender, ItemClickEventArgs e)
        {
            ViewModel.TemporarilySelectedAnimeItem = e.ClickedItem as AnimeItemViewModel;
            await Task.Delay(50);

            AnimesGridIndefinite.ScrollIntoView(e.ClickedItem);
        }
 private void MainOnOffContentPaneStateChanged()
 {
     if (Settings.AnimeListEnsureSelectedItemVisibleAfterOffContentCollapse &&
         AnimesGridIndefinite.SelectedItem != null)
     {
         AnimesGridIndefinite.ScrollIntoView(AnimesGridIndefinite.SelectedItem);
     }
 }
        private void AnimeGridItemOnTap(object sender, TappedRoutedEventArgs e)
        {
            var item = (sender as FrameworkElement).DataContext as AnimeItemViewModel;

            if (item == null)
            {
                return;
            }
            ViewModel.TemporarilySelectedAnimeItem = item;
            AnimesGridIndefinite.ScrollIntoView(item);
        }