private void sv2_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { if (fooIsSync == false) { fooIsSync = true; sv1.ChangeView(sv2.HorizontalOffset, null, null); } }
private static void SvOnViewChanging(object sender, ScrollViewerViewChangingEventArgs args) { var sv = (ScrollViewer) sender; if (args.FinalView.VerticalOffset > (double)sv.GetValue(ShowScrollbarAtBreakpointOffsetProperty)) sv.VerticalScrollBarVisibility = ScrollBarVisibility.Auto; else sv.VerticalScrollBarVisibility = ScrollBarVisibility.Hidden; }
private void ScrollViewer_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { //if (fooIsSync == false) //{ // fooIsSync = true; // //scrollViewerRight.ScrollToVerticalOffset((sender as ScrollViewer).VerticalOffset); // //sv2.ScrollToHorizontalOffset(sv1.HorizontalOffset); // sv2.ChangeView(sv1.HorizontalOffset, null, null); //} }
private void foundOne_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { //YOur logic to hide the button if (e.NextView.VerticalOffset > 100) { FooterGrid.Visibility = Visibility.Visible; } else { FooterGrid.Visibility = Visibility.Collapsed; } }
private void OnViewChanging(object sender, ScrollViewerViewChangingEventArgs args) { var nextView = args.NextView; var scrollViewer = (ScrollViewer)sender; EmitScrollEvent( scrollViewer, ScrollEventType.Scroll, nextView.HorizontalOffset, nextView.VerticalOffset, nextView.ZoomFactor); }
private void GamesScrollViewer_ViewChanging_1(object sender, ScrollViewerViewChangingEventArgs e) { if (-e.NextView.VerticalOffset < -165) { margin.Top = -165; } else { margin.Top = -e.NextView.VerticalOffset; } HeaderScrollViewer.Margin = margin; }
private async void OnSCViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { var scrollViewer = sender as ScrollViewer; HandleGoUpRefreshButtons(sender as ScrollViewer); if ((scrollViewer.VerticalOffset - _lastMainVerticalOffset) > 5 && !_isMainHideTitleGrid) { _isMainHideTitleGrid = true; } else if (scrollViewer.VerticalOffset < _lastMainVerticalOffset && _isMainHideTitleGrid) { _isMainHideTitleGrid = false; "2".PrintDebug(); if (scrollViewer.VerticalOffset < 3.0) { return; //SCMain.EnableScroll(); } } if (scrollViewer.VerticalOffset < 3.0) { "3".PrintDebug(); _isMainHideTitleGrid = true; } if (_lastMainVerticalOffset > scrollViewer.VerticalOffset) { if (scrollViewer.VerticalOffset < 3.0 && _isMainHideTitleGrid && !_triedFirst) { _triedFirst = true; ("DISABELING SC1 SC2").PrintDebug(); lastSC1Offset = S1.VerticalOffset; if (S2 != null) { lastSC2Offset = S2.VerticalOffset; } scrollViewer.DisableScroll(); await Task.Delay(150); SCMain.EnableScroll(); GridMainScrollViewer.Height = double.NaN; await Task.Delay(10); SCMain.EnableScroll(); SCMain.ChangeView(null, GridMainScrollViewer.ActualHeight - 10, null); await Task.Delay(750); _triedFirst = false; } } _lastMainVerticalOffset = scrollViewer.VerticalOffset; }
private void ScrollViewer_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { if (m_ignoreZoomChanges) { return; } // If the zooms don't match go full screen if (Math.Abs(m_minZoomFactor - ui_scrollViewer.ZoomFactor) > .001) { m_host.ToggleFullScreen(true); } }
private void ScrollViewer_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { switch (ViewModel.PageOrientation) { case Orientation.Horizontal: ViewModel.CurrentPage = OffsetToPageNumber(ScrollViewer.HorizontalOffset); break; case Orientation.Vertical: ViewModel.CurrentPage = OffsetToPageNumber(ScrollViewer.VerticalOffset); break; } }
private void ScrollViewer_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { if (_isAnimationing || !isAllowCheckSV) { return; } if (e.IsInertial) { return; } UpdateMaskDelta(); System.Diagnostics.Debug.WriteLine("changing"); }
private void Sv1_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { if (e.IsInertial) { //sv2.ChangeView(0, e.FinalView.VerticalOffset, null, false); Debug.WriteLine("IsInertial:true : " + e.FinalView.VerticalOffset + "," + e.NextView.VerticalOffset); } else { Debug.WriteLine("IsInertial:false : " + e.FinalView.VerticalOffset + "," + e.NextView.VerticalOffset); } //sv2.ChangeView(0, e.NextView.VerticalOffset, null, true); }
private async void pv_Content_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { await Dispatcher.YieldIdle(); if (e.NextView.VerticalOffset < e.FinalView.VerticalOffset && this.sv_Content.VerticalOffset < 1) { changeViewTo(true, false); } else if (e.IsInertial && e.NextView.VerticalOffset < 1 && this.sv_Content.VerticalOffset > this.gdInfo.ActualHeight - 1) { changeViewTo(false, false); } }
private static void SvOnViewChanging(object sender, ScrollViewerViewChangingEventArgs args) { var sv = (ScrollViewer)sender; if (args.FinalView.VerticalOffset > (double)sv.GetValue(ShowScrollbarAtBreakpointOffsetProperty)) { sv.VerticalScrollBarVisibility = ScrollBarVisibility.Auto; } else { sv.VerticalScrollBarVisibility = ScrollBarVisibility.Hidden; } }
private void ScrollViewerOnViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { if (e.IsInertial) { if (!IsAtTop) { if (ShowGoToTopButton) { // Show go to top button VisualStateManager.GoToState(this, "ShowGoToTopButton", true); } } } }
private async void ParentScrollViewer_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { // Update the active range var top = e.FinalView.HorizontalOffset; var scrollViewer = (sender as ScrollViewer); if (UpdateActiveRange(e.NextView.VerticalOffset, scrollViewer.ViewportHeight, this.DesiredSize.Width - this.Margin.Left - this.Margin.Right, false)) { //Debug.WriteLine($"ParentScrollViewer_ViewChanging: New Range {FirstActive} ~ {LastActive}"); RevirtualizeAll(); } await CheckNeedMoreItemAsync(); }
private void sc_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { if (sc.VerticalOffset > 0 && sc.ScrollableHeight > 150) { if (sc.VerticalOffset >= sc.ScrollableHeight - 140 && bbb == false) { page++; string createAddress = string.Format(Constants.AddressWithPage, siteName.ToLower(), page); webGard.Begin(createAddress); bbb = true; } } }
private void OnScrollViewerViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { if (_scrollViewer == null) { return; } if (e.IsInertial) { if (!_isAtTop) { VisualStateManager.GoToState(this, "ShowGoToButton", true); } } }
private void ScrollViewer_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { ScrollViewer view = sender as ScrollViewer; if (e.FinalView.VerticalOffset > 20) { view.Padding = new Thickness(0, 0, 0, 0.5); BottomAppBar.Visibility = Windows.UI.Xaml.Visibility.Visible; } else { view.Padding = new Thickness(0, 0, 0, 0); BottomAppBar.Visibility = Windows.UI.Xaml.Visibility.Collapsed; } }
/// <summary> /// Fired when the scroller is moving. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ScrollViewer_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { if (m_ignoreZoomChanges) { return; } // If the zooms don't match go full screen if (Math.Abs(m_minZoomFactor - ui_scrollViewer.ZoomFactor) > .001) { // Load the image full screen if not already. ReloadImage(true); // Try to go full screen m_base.FireOnFullscreenChanged(true); } }
private void ScrollViewerOnViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { var viewer = sender as ScrollViewer; if (viewer == null) { return; } if (e.NextView.VerticalOffset > 0) { this.AnimateAddTransactionToCircle(); } else { this.AnimateAddTransactionToFull(); } }
private void MyScroll_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { ScrollValue.Text = "Vertical Offset: " + e.FinalView.VerticalOffset.ToString() + "\nHorizontal Offset: " + e.FinalView.HorizontalOffset.ToString() + "\nVerticalHeight: " + MyScroll.ScrollableHeight; double vOffset = e.FinalView.VerticalOffset; double scrollHeight = MyScroll.ScrollableHeight; // If 0 yung vOffset dapat max yung shape if (vOffset == 0) { MyShape.Height = MyShape.Width = 200; } else if (((scrollHeight - vOffset) / scrollHeight) >= 0.4) { MyShape.Height = MyShape.Width = ((scrollHeight - vOffset) / scrollHeight) * 200; } // Kapag umabot sa 40 percent yung scroll, unti-unting liliit upto 50% }
private void HandleZoomChanging(object sender, ScrollViewerViewChangingEventArgs e) { ToggleCloseButton(); if (_viewer.ZoomFactor < 1.001f) { // raise the reset event this.RaiseOnZoomResetEvent(this); } else { // raise the changing event this.RaiseOnZoomChangingEvent(this); } // telemetry TelemetryService.Current?.LogTelemetryEvent(TelemetryEvents.StartPinch); }
private async void SearchResults_ViewChangingAsync(object sender, ScrollViewerViewChangingEventArgs e) { if (!this.addingStuff && this.SearchResults.ExtentHeight - e.NextView.VerticalOffset < 2000) { await Task.Factory.StartNew(async() => { switch (this.CurrentGroupType) { case SearchResultsGroupType.Song: List <Song> songs = await this.songDBSearcher.LoadItemsAsync(50); this.addingStuff = true; foreach (Song song in songs) { await this.AddSongToSearchResultsAsync(song, this.topSearchResult); } this.addingStuff = false; break; case SearchResultsGroupType.Album: List <Album> albums = await this.albumDBSearcher.LoadItemsAsync(50); this.addingStuff = true; foreach (Album album in albums) { await this.AddAlbumToSearchResultsAsync(album, this.topSearchResult); } this.addingStuff = false; break; case SearchResultsGroupType.Artist: List <Artist> artists = await this.artistDBSearcher.LoadItemsAsync(50); this.addingStuff = true; foreach (Artist artist in artists) { await this.AddArtistToSearchResultsAsync(artist, this.topSearchResult); } this.addingStuff = false; break; } }); } }
private void ScrollViewer_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { if (!CanPullToRefresh || !Utils.IsOnMobile) { return; } if (e.NextView.VerticalOffset == 0) { _timer.Start(); } else { _timer.Stop(); _notifyToRefreshTimer.Stop(); _pullProgressBar.Value = 0; _isNotifyToRefreshTimerStarting = false; } }
//private double _lastVerticalOffset; //private bool _isHideTitleGrid; private void ScrollViewViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { //try //{ // var scrollViewer = sender as ScrollViewer; // if ((scrollViewer.VerticalOffset - _lastVerticalOffset) > 5 && !_isHideTitleGrid) // { // _isHideTitleGrid = true; // ToggleGoUpButtonAnimation(false); // } // else if (scrollViewer.VerticalOffset < _lastVerticalOffset && _isHideTitleGrid) // { // _isHideTitleGrid = false; // ToggleGoUpButtonAnimation(true); // } // _lastVerticalOffset = scrollViewer.VerticalOffset; //} //catch { } }
/// <summary> /// Detect if we've scrolled all the way to the top. Stop timers when we're not completely in the top /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ScrollViewer_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { if (e.NextView.VerticalOffset == 0) { timer.Start(); } else { timer?.Stop(); compressionTimer?.Stop(); isCompressionTimerRunning = false; isCompressedEnough = false; isReadyToRefresh = false; VisualStateManager.GoToState(this, VisualStateNormal, true); } }
private void ScrollViewViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { try { var scrollViewer = sender as ScrollViewer; if ((scrollViewer.VerticalOffset - _lastVerticalOffset) > 5 && !_isHideTitleGrid) { _isHideTitleGrid = true; ToggleHeaderGridAnimation(false); } else if (scrollViewer.VerticalOffset < _lastVerticalOffset && _isHideTitleGrid) { _isHideTitleGrid = false; ToggleHeaderGridAnimation(true); } _lastVerticalOffset = scrollViewer.VerticalOffset; } catch { } }
void scrollViewer_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { //Update the predicted next and final view values while a zoom/pan is occuring predictedNextHOText.Text = e.NextView.HorizontalOffset.ToString(); predictedNextVOText.Text = e.NextView.VerticalOffset.ToString(); predictedNextZFText.Text = e.NextView.ZoomFactor.ToString(); predictedFinalHOText.Text = e.FinalView.HorizontalOffset.ToString(); predictedFinalVOText.Text = e.FinalView.VerticalOffset.ToString(); predictedFinalZFText.Text = e.FinalView.ZoomFactor.ToString(); if (e.IsInertial) { isInertialOutputText.Text = "Inertial"; } else { isInertialOutputText.Text = "Not Inertial"; } }
/// <summary> /// Invoked when <see cref="ScrollViewer"/> element view changing. /// </summary> private void OnElementViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { if (this.isWorking) { return; } this.HorizontalOffset = e.NextView.HorizontalOffset; if (UseIndexMethod && this.AssociatedObject is ListView) { var list = (ListView)this.AssociatedObject; var data = list.GetFirstVisibleIndexAndOffset(); this.FirstVisibleIndex = data.Item1; this.VerticalOffset = data.Item2; } else { this.VerticalOffset = e.NextView.VerticalOffset; } }
private void Changing(object sender, ScrollViewerViewChangingEventArgs e) { if (Songlist.Count > 15) //hide top head area { if (scrollViewer.VerticalOffset - lastposition > 0) //Down scrolling { if (scrollViewer.VerticalOffset - lastposition > 30) { UpBoard.Visibility = Visibility.Collapsed; } } else { if (scrollViewer.VerticalOffset < 10) { UpBoard.Visibility = Visibility.Visible; } } lastposition = scrollViewer.VerticalOffset; } }
async void scrollViewer_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { ScrollViewer sv = sender as ScrollViewer; // if the difference between horizontal offset and scrollable width is less than // INCREMENTAL_LOAD_OFFSET_TRIGGER pixels load next group if (((sv.ScrollableWidth - e.FinalView.HorizontalOffset) < INCREMENTAL_LOAD_OFFSET_TRIGGER) && (PhotosDataSource.IsBusy == false) && (PhotosDataSource.HasMoreItems)) { progress.Visibility = Visibility.Visible; var newPhotos = await PhotosDataSource.LoadPhotos(1); progress.Visibility = Visibility.Collapsed; foreach (var pg in newPhotos) { photos.Add(pg); } } }
private void ScrollViewer_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { double verticalOffset = ((ScrollViewer)sender).VerticalOffset; var header = (PageHeader)TargetControl; header.BackgroundColorOpacity = verticalOffset / _opacityMaxValue; header.AcrylicOpacity = 0.3 * (1 - (verticalOffset / _opacityMaxValue)); if (verticalOffset < 10) { VisualStateManager.GoToState(header, "DefaultForeground", false); header.BackgroundColorOpacity = 0; header.FontSize = 42; header.Foreground = new SolidColorBrush(Colors.White); header.AcrylicOpacity = 0.3; } else if (verticalOffset > scrollViewerThresholdValue) { VisualStateManager.GoToState(header, "AlternateForeground", false); header.FontSize = _minFontSize; } else { if (App.ActualTheme != ElementTheme.Dark) { VisualStateManager.GoToState(header, "DefaultForeground", false); Color foreground = new Color() { A = _alpha }; foreground.R = foreground.G = foreground.B = (byte)((verticalOffset > _alpha) ? 0 : (_alpha - verticalOffset)); header.Foreground = new SolidColorBrush(foreground); } else { VisualStateManager.GoToState(header, "AlternateForeground", false); } header.FontSize = -(((verticalOffset / scrollViewerThresholdValue) * (_maxFontSize - _minFontSize)) - _maxFontSize); } }
public void ScrollViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { try { if (Items == null) { return; } if (!Items.Any()) { return; } ScrollViewer view = sender as ScrollViewer; double progress = view.HorizontalOffset / view.ScrollableWidth; if (progress > 0.90 && IsLoading == false && !FirstRun) { IsLoading = true; RunLoadMore(); } } catch (Exception ex) { ex.PrintException("Scroll_ViewChanging"); } }
private void SV_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { var sV = (ScrollViewer) sender; verticalOffset = sV.VerticalOffset; }
/// <summary> /// Handler for the ScrollViewer's ViewChanging event. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Scroller_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { // Cancel refreshable status in inertia mode. if (e.IsInertial && !m_isAutoRefreshing) { this.UpdateRefreshableStatus(false /*refreshActivatable*/, false /*force*/); } }
private void ScrollViewer_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { if(m_ignoreZoomChanges) { return; } // If the zooms don't match go full screen if(Math.Abs(m_minZoomFactor - ui_scrollViewer.ZoomFactor) > .001) { m_host.ToggleFullScreen(true); } }
private void ScrollViewerViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { if (e.NextView.VerticalOffset == 0) { Timer.Start(); } else { if (Timer != null) { Timer.Stop(); } if (CompressionTimer != null) { CompressionTimer.Stop(); } IsCompressionTimerRunning = false; IsCompressedEnough = false; IsReadyToRefresh = false; VisualStateManager.GoToState(this, "Normal", true); } }
private async void scrollViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { ScrollViewer scroll = sender as ScrollViewer; if (scroll.ExtentHeight - e.FinalView.VerticalOffset < 1500) { if(await api.hasInternet()) { await q.downloadMoreEpisodes(); } } }
private void Scrollviewer_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { var offset = scrollviewer.VerticalOffset; if (e.IsInertial) { Debug.WriteLine(offset); offsets.Add(offset); count = count + 1; DetermineVisualstateChange(); } }
private void ScrollViewer_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { //if (e.NextView.VerticalOffset != e.FinalView.VerticalOffset && e.IsInertial) //{ // Debug.WriteLine(e.NextView.VerticalOffset + "," + e.FinalView.VerticalOffset); // Debug.WriteLine("ScrollViewer_ViewChanging," + e.IsInertial); // UpdateGroupHeaders(e.IsInertial); //} }
private void ScrollViewer_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { // Give the Statusbar a white Background if the SheetVisibility is Full if (ApiInformation.IsTypePresent("Windows.UI.ViewManagement.StatusBar")) { if (e.NextView.VerticalOffset == scrollViewer.ScrollableHeight && SettingsManager.Current.AppTheme != ElementTheme.Light) { statusBar.ForegroundColor = Colors.LightGray; } else if (e.FinalView.VerticalOffset < scrollViewer.ScrollableHeight) { statusBar.ForegroundColor = Colors.Black; } } //ScrollViewerPreviousOffset = scrollViewer.VerticalOffset; // If the Search input is scrolled out of view the focus is set to the scrollViewer, thus removing the SIP if (InputPane.GetForCurrentView().OccludedRect.Height > e.NextView.VerticalOffset) { SheetFrame.Focus(FocusState.Programmatic); } }
/// <summary> /// Fired when the scroller is moving. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void ScrollViewer_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { if (m_state != ImageState.Normal) { return; } // If the zooms don't match go full screen if (!AreCloseEnoughToEqual(m_minZoomFactor, ui_scrollViewer.ZoomFactor)) { // Set the state and hide the image, we do this make the transition smoother. m_state = ImageState.EnteringFullscreen; VisualStateManager.GoToState(this, "HideImage", true); ui_scrollViewer.Visibility = Visibility.Collapsed; // wait a second for the vis change to apply await Task.Delay(10); // Try to go full screen m_base.FireOnFullscreenChanged(true); // Delay for a bit to let full screen settle. await Task.Delay(10); // Resize the image. ReloadImage(true); } }
private void foundOne_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { //YOur logic to hide the button if (e.NextView.VerticalOffset > previousPosition+50) { if (!isHeaderHide) { HeaderRow.Visibility = Visibility.Collapsed; MasterCommandBar.ClosedDisplayMode = AppBarClosedDisplayMode.Minimal; isHeaderHide = true; } previousPosition = e.NextView.VerticalOffset; return; } if (e.NextView.VerticalOffset < previousPosition-20) { if (isHeaderHide) { HeaderRow.Visibility = Visibility.Visible; MasterCommandBar.ClosedDisplayMode = AppBarClosedDisplayMode.Compact; isHeaderHide = false; } previousPosition = e.NextView.VerticalOffset; } }
/// <summary> /// 视图变化 /// </summary> private void _scrollViewer_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { Show(); }
private void MainScroller_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { BackgroundScroll.ChangeView(0, (MainScroller.VerticalOffset / MainScroller.ScrollableHeight) * BackgroundScroll.ScrollableHeight, 1); }
private void ScrollViewer_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { ScrollViewer view = sender as ScrollViewer; if (e.FinalView.VerticalOffset > 20) { //view.Padding = new Thickness(0,0,0,0.5); BottomAppBar.Visibility = Windows.UI.Xaml.Visibility.Visible; } else { //view.Padding = new Thickness(0, 0, 0, 0); BottomAppBar.Visibility = Windows.UI.Xaml.Visibility.Collapsed; } }
private void scrViewr_ViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { if (scrViewr.VerticalOffset == 0.0) gotoTop.Visibility = Windows.UI.Xaml.Visibility.Collapsed; else gotoTop.Visibility = Windows.UI.Xaml.Visibility.Visible; }
/// <summary> /// 以下方法命中两次,第一次是非惯性条件下的位移,第二次是惯性条件下的位移。 /// ScrollViewer_OnViewChanging,ScrollViewer.VerticalOffset是滚动条的起始位置,e.FinalView.VerticalOffset是非惯性移动到的位置, /// 第二次的时候起始位置变成上一次非惯性移动的位置,而e.FinalView.VerticalOffset是惯性移动的位置,根据这几个值可以对scrollView的滚动方向进行判断 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ScrollViewer_OnViewChanging(object sender, ScrollViewerViewChangingEventArgs e) { if (!e.IsInertial) { var scrollView = sender as ScrollViewer; // 获得起始位置 var yBegin = scrollView.VerticalOffset; // 获得结束位置 var yEnd = e.FinalView.VerticalOffset; // 获取差值 var yDelta = yEnd - yBegin; this.BottomAppBar.ClosedDisplayMode = yDelta > 0 ? AppBarClosedDisplayMode.Minimal : AppBarClosedDisplayMode.Compact; } }