无法在Windows Phone 8.1中单击按钮时导航到另一个页面

时间:2014-11-13 10:22:19

标签: c# xaml windows-phone-8.1

我有一个按钮&单击它后,我需要转到另一个xaml页面。

此按钮位于Page1.xaml

<Button Content="Button Name" HorizontalAlignment="Center" VerticalAlignment="Center" Click="Button_Click" Foreground="#FF119FF0"/>


    private void Button_Click(object sender, RoutedEventArgs e)
    {
       frameBody.Navigate(typeof(HomePage)); 
    }

但我无法导航到HomePage.xaml。

可能是什么原因?

这些是我包含的库:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;

Button_Click()函数在Page1.xaml.cs中定义。

4 个答案:

答案 0 :(得分:2)

我认为您缺少指令或程序集引用?

用于窗口电话8.1导航

 Frame.Navigate(typeof(Urpage));

用于Windows Phone 8.0

        NavigationService.Navigate(new Uri("/URpage.xaml", UriKind.Relative));

答案 1 :(得分:2)

检查您是否正在使用Windows Phone Silverlight项目,并且您的班级正在扩展/继承“电话应用程序页面”,如下所示:

public partial class Example : PhoneApplicationPage
{
        private void Button_Click(object sender, RoutedEventArgs e)
        {    
            NavigationService.Navigate(new Uri("/Homepage.xaml", UriKind.RelativeOrAbsolute));   
        }  
}

希望这有帮助

答案 2 :(得分:1)

这是我在项目中使用的代码:

    private void ItemView_ItemClick(object sender, ItemClickEventArgs e)
    {
        var albumId = ((Album)e.ClickedItem).Id;
        if (!Frame.Navigate(typeof(AlbumPage), albumId))
        {
            var resourceLoader = ResourceLoader.GetForCurrentView("Resources");
            throw new Exception(resourceLoader.GetString("NavigationFailedExceptionMessage"));
        }
    }

要关注的部分是Frame.Navigate(typeof(AlbumPage))

我想将一些信息传递给该页面,这就是我传递albumId的原因。

如果要在其他页面中检索传递的参数,可能需要使用以下代码:

    private void NavigationHelper_LoadState(object sender, LoadStateEventArgs e)
    {
        var albumId = (int)e.NavigationParameter;
    }

答案 3 :(得分:0)

另一个需要注意的最重要的一点是,您可能需要查看“App.xaml.cs&#39;文件和OnLaunched方法更改

   rootFrame.Navigate(typeof(UrPage),e.Arguments);

默认情况下MainPage.xaml加载。