小编Spe*_*rer的帖子

下拉以在Windows Phone 8.1中刷新


我想在我的WP8.1(运行时)应用程序中实现下拉到刷新功能.我试图找到这个WP版本的解决方案,但正如我所看到的,这个功能适用于旧版本的WP.
我有一个ListView,我想使用它.使用ScrollViewer,我可以检测到用户何时到达列表的末尾,但是例如VerticalOffset值不能是负数,因此我无法检测到下拉手势.
任何人都可以知道如何为我的应用程序实现此功能?

c# listview windows-runtime pull-to-refresh windows-phone-8.1

13
推荐指数
1
解决办法
4497
查看次数

Windows Phone 8.1覆盖特定页面上的后退按钮

我正在开发一个WP 8.1 XAML应用程序.第一页是登录页面,第二页是例如历史页面.会有更多页面,但目前无关紧要.当我按下登录页面上的登录按钮时,会出现第二个(历史记录)页面.如果我按下历史记录页面上的(物理)后退按钮,它将返回登录页面.但我想禁用此功能.取而代之的是,当我按下后退按钮时会出现MessageDialog,如果我在几秒钟内再次按下(例如3秒),应用程序将终止.我试图找到我的问题的答案,但它不能正常工作.我在登录页面上尝试了这个:

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    HardwareButtons.BackPressed += HardwareButtons_BackPressed;
}
private void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)
{
    if (Frame.CurrentSourcePageType.FullName == "MyAppName.History")
        Application.Current.Exit();
}
Run Code Online (Sandbox Code Playgroud)

当我按下第二个(历史)页面上的后退按钮时,我的应用程序终止.但是,如果我尝试按下后退按钮,它将导航回登录页面.在此之后,当我再次登录并按下后退按钮时,计数器将为2,应用程序将退出.这是我尝试的代码:

private void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)
{
    //MessageDialog msgbox = new MessageDialog("This is a popup message");
    //await msgbox.ShowAsync(); 
    //e.Handled = true;
    backPressCount++;

    if (backPressCount==2 && Frame.CurrentSourcePageType.FullName == "MyAppName.History")
        Application.Current.Exit();
}
Run Code Online (Sandbox Code Playgroud)

如果我取消注释2个MessageDialog行,则会显示该消息,但我将导航回登录页面.我试图取消注释e.Handled = true;,但它没有帮助.我想我应该禁用历史记录页面上的后退按钮或完全覆盖它.有人对我的问题有所了解吗?

编辑: 我重新考虑后退按钮的行为,因为我不想使用自动收报机来测量2按下之间的时间.而不是这个,我只想要一个带有问题的弹出消息,例如"你真的想退出吗?" 和2个按钮(是和否).它适用于以下代码:

private async void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)
{
    e.Handled = true;
    MessageDialog dlg = new …
Run Code Online (Sandbox Code Playgroud)

overriding back-button messagedialog windows-phone-8.1

3
推荐指数
1
解决办法
5415
查看次数