Nascondi AppBar sul rotolo
-
21-12-2019 - |
Domanda
Sto cercando di creare una certa funzionalità in cui l'Appbar dell'app si nasconde quando sto scorrendo giù un ItemsControl
- Ho allegato un gestore di eventi su Scrollviewer ma il problema che sto affrontando è che la funzionalità è molto sensibile .Ciò che intendo in questo è l'app Bar continua a mostrare e nascondendo quando mi sto muovendo su e giù per la lista.
My Event Handler - Ho un campo chiamato scrollPoint
che memorizza che l'ultima offset verticale di scorrimento.
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;
}
.
Il mio modello di mieticontrol
<ItemsControl.Template>
<ControlTemplate>
<ScrollViewer x:Name="pushScroll" VerticalScrollMode="Enabled" BringIntoViewOnFocusChange="True" ViewChanged="pushScroll_ViewChanged">
<ItemsPresenter />
</ScrollViewer>
</ControlTemplate>
</ItemsControl.Template>
. Soluzione
Hai pensato di implementare un timer.Quindi devi fare scorrere lo scorrimento per 1/2 al secondo prima che la barra dell'app ritorni.Tuttavia, scompare quasi istantaneamente durante lo scorrimento.
http://msdn.microsoft.com/en-US / Biblioteca / System.timers.timer.aspx
Potresti anche voler esaminare un'animazione in modo da scivoli via e scivola indietro.
Altri suggerimenti
Il problema con la tua soluzione è che quando scorri l'APPBAR sarà nascosto alwasy.Hai provato istermediato dell'evento ARGS?Sarà falso quando la scorrimento smette di scorrimento e true quando scorri a portata di mano alla fine.Prova sotto il codice.
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;
}
.