【发布时间】:2013-09-12 21:51:38
【问题描述】:
当用户到达 (ScrollViewer)Page 的末尾时,我正在尝试打开 App-Bar... 因此,当到达终点时,我需要一个指示器...
- 我的 Scrollviewer(可能是因为 WP8)有没有“ViewChanged”事件 喜欢在其他问题中发布的内容
- 我认为这个解决方案对于我的问题来说太过分了: http://blogs.msdn.com/b/slmperf/archive/2011/06/30/windows-phone-mango-change-listbox-how-to-detect-compression-end-of-scroll-states.aspx
我在此查看器中找不到任何可以帮助我的事件...
<ScrollViewer x:Name="SV_ScrollViewer"
Grid.Row="1"
Margin="12,0,12,0"
ManipulationMode="Control"
AllowDrop="False">
<Grid x:Name="ContentPanel">
<StackPanel>
<Controls:Map
Height="730"
x:Name="M_MainMap"
ZoomLevel="10"
Loaded="Map_Loaded"/>
<phone:LongListSelector
x:Name="LLS_FuelStations"
Height="700">
</phone:LongListSelector>
</StackPanel>
</Grid>
</ScrollViewer>
感谢您的帮助!
2-编辑:LayoutUpdated-Event 不适合再次关闭应用栏...我最终得到了一个 Dispatcher-Timer 来关闭和打开它。现在它工作正常(顺利):
// Constructor
public MainPage()
{
InitializeComponent();
Dispatcher.BeginInvoke(() =>
{
//initialize timer
if (timer == null)
{
int timerSpan = 500;
timer = new DispatcherTimer { Interval = TimeSpan.FromMilliseconds(timerSpan) };
timer.Tick += (o, arg) => OffsetWatcher();
}
});
}
关闭和打开应用栏:
private void OffsetWatcher()
{
if (SV_ScrollViewer.ScrollableHeight - SV_ScrollViewer.VerticalOffset > 100 )
{
if (ApplicationBar.IsVisible)
{
ApplicationBar.IsVisible = false;
ApplicationBar.IsMenuEnabled = false;
}
}
else
{
if (!ApplicationBar.IsVisible)
{
BuildLocalizedApplicationBar();
}
}
}
【问题讨论】:
-
也许编写自己的代码会有所帮助,因为不存在此类事件
-
这个问题是询问事件而不是检查偏移量的方式,我在问题中写道,副本是“过度杀伤”。..
标签: xaml windows-phone-8 winrt-xaml scrollviewer appbar