隐藏滚动栏
本文关键字:滚动 隐藏 | 更新日期: 2023-09-27 18:06:25
我正在尝试创建一些功能,当我向下滚动ItemsControl
时,应用程序的AppBar将隐藏-我已经将事件处理程序附加到ScrollViewer上,但我面临的问题是该功能非常敏感。我的意思是,当我上下移动列表时,应用程序栏会一直显示和隐藏。
我的事件处理程序-我有一个名为scrollPoint
的字段,存储最后一个滚动垂直偏移。
private void pushScroll_ViewChanged(object sender, ScrollViewerViewChangedEventArgs e)
{
var scrollViewer = (ScrollViewer)sender;
if (scrollViewer.VerticalOffset < scrollPoint)
{
bottomBar.Visibility = Visibility.Visible;
}
else
{
bottomBar.Visibility = Visibility.Collapsed;
}
scrollPoint = scrollViewer.VerticalOffset;
}
My ItemsControl Template
<ItemsControl.Template>
<ControlTemplate>
<ScrollViewer x:Name="pushScroll" VerticalScrollMode="Enabled" BringIntoViewOnFocusChange="True" ViewChanged="pushScroll_ViewChanged">
<ItemsPresenter />
</ScrollViewer>
</ControlTemplate>
</ItemsControl.Template>
您是否考虑过实现计时器?所以你需要在App栏回来之前滚动半秒。然而,当滚动时,它几乎立即消失。
http://msdn.microsoft.com/en-us/library/system.timers.timer.aspx您可能还想查看动画,以便它滑动并返回
这个解决方案的问题是,当你向上滚动时,appbar总是隐藏的。您是否尝试了事件参数的IsIntermediate ?当滚动停止滚动时为假,当滚动到达结束时为真。试试下面的代码。
private async void scrollViewer_ViewChanged(object sender, ScrollViewerViewChangedEventArgs e)
{
if (e.IsIntermediate)
{
this.BottomAppBar.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
}
else
this.BottomAppBar.Visibility = Windows.UI.Xaml.Visibility.Visible;
}