private void BladeOnVisibilityChanged(object sender, Visibility visibility) { var blade = sender as Blade; if (visibility == Visibility.Visible) { ActiveBlades.Add(blade); UpdateLayout(); GetScrollViewer(); _scrollViewer.ChangeView(_scrollViewer.ScrollableWidth, null, null); return; } ActiveBlades.Remove(blade); }
private void BladeOnVisibilityChanged(object sender, Visibility visibility) { var blade = sender as BladeItem; if (visibility == Visibility.Visible) { Items.Remove(blade); Items.Add(blade); BladeOpened?.Invoke(this, blade); ActiveBlades.Add(blade); UpdateLayout(); GetScrollViewer()?.ChangeView(_scrollViewer.ScrollableWidth, null, null); return; } BladeClosed?.Invoke(this, blade); ActiveBlades.Remove(blade); }
private async void BladeOnVisibilityChanged(object sender, Visibility visibility) { var blade = sender as BladeItem; if (visibility == Visibility.Visible) { if (Items == null) { return; } var item = ItemFromContainer(blade); Items.Remove(item); Items.Add(item); BladeOpened?.Invoke(this, blade); ActiveBlades.Add(blade); UpdateLayout(); // Need to do this because of touch. See more information here: https://github.com/CommunityToolkit/WindowsCommunityToolkit/issues/760#issuecomment-276466464 var dispatcherQueue = DispatcherQueue.GetForCurrentThread(); await dispatcherQueue.EnqueueAsync( () => { GetScrollViewer()?.ChangeView(_scrollViewer.ScrollableWidth, null, null); }, DispatcherQueuePriority.Low); return; } BladeClosed?.Invoke(this, blade); ActiveBlades.Remove(blade); var lastBlade = ActiveBlades.LastOrDefault(); if (lastBlade != null && lastBlade.TitleBarVisibility == Visibility.Visible) { lastBlade.IsExpanded = true; } }
private async void BladeOnVisibilityChanged(object sender, Visibility visibility) { var blade = sender as BladeItem; if (visibility == Visibility.Visible) { if (Items == null) { return; } Items.Remove(blade); Items.Add(blade); BladeOpened?.Invoke(this, blade); ActiveBlades.Add(blade); UpdateLayout(); // Need to do this because of touch. See more information here: https://github.com/Microsoft/UWPCommunityToolkit/issues/760#issuecomment-276466464 await Dispatcher.RunAsync(CoreDispatcherPriority.Low, () => { GetScrollViewer()?.ChangeView(_scrollViewer.ScrollableWidth, null, null); }); return; } BladeClosed?.Invoke(this, blade); ActiveBlades.Remove(blade); var lastBlade = ActiveBlades.LastOrDefault(); if (lastBlade != null && lastBlade.TitleBarVisibility == Visibility.Visible) { lastBlade.IsExpanded = true; } }