以下是我的代码。点击按钮后,我无法从MasterPage.xaml导航到Slide_show.xaml。
public partial class MainPage : PhoneApplicationPage
{ public MainPage()
{
InitializeComponent();
Loaded += new RoutedEventHandler(MainPage_Loaded);
}
private void Play_C(object sender, RoutedEventArgs e)
{
//Slide_show obj=new Slide_show();
//obj.MainPage_Loaded(sender,e);
try
{
this.NavigationService.Navigate(new Uri("Slide_show.xaml",UriKind.Relative));
}
catch (Exception e1)
{
MessageBox.Show("unable to show");
}
}
xaml文件是
<phone:PhoneApplicationPage xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
x:Class="photoViewer.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="PortraitOrLandscape" Orientation="Portrait"
shell:SystemTray.IsVisible="True">
<!--LayoutRoot is the root grid where all page content is placed-->
<Grid x:Name="LayoutRoot" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Button Content="Play" Grid.Row="1" Height="72" HorizontalAlignment="Right" Margin="0,696,170,0" Name="button5" VerticalAlignment="Top" Width="114" Background="Transparent" Click="Play_C"/>
</Grid>
Slide_show.xaml.cs文件是
public class Slide_show : PhoneApplicationPage
{
public Slide_show()
{
//InitializeComponent();
Loaded += new RoutedEventHandler(MainPage_Loaded);
}
}
答案 0 :(得分:2)
我认为你的Uri中缺少一个“/”。 this.NavigationService.Navigate(new Uri(“/ Slide_show.xaml”,UriKind.Relative)); 也试试..
答案 1 :(得分:2)
我看到3个问题。
首先,当导航到带有Relative
Uri的页面时,您应该使用/
启动uri。例如:
NavigationService.Navigate(new Uri("/Slide_Show.xaml", UriKind.Relative));
第二个是Slide_show.xaml.cs
没有被定义为部分类。在这种情况下,您实际上定义了两个具有相同名称的类,而基于xaml将生成一个分类。 (或者更确切地说是生成的)
第三,您正在禁用对InitializeComponent()
的调用。如果没有这个,页面将无法正确构建。 (假设你已经解决了最后两个问题。)
我猜你添加了新页面(“Slide_Show”)。然后删除了partial关键字(无论出于何种原因),然后注释掉对InitializeComponent的无效调用 放回您删除/注释掉的代码。模板把它放在那里是有原因的。
答案 2 :(得分:0)
您的try / catch中是否会遇到异常,或者它是否仅显示?如果有例外是什么?