在Windows Phone 8.1 [RT] xaml中导航的最佳实践

时间:2015-11-05 12:33:00

标签: c# xaml navigation windows-phone-8.1 frame

您好我正在使用Windows Phone 8.1 [RT]应用程序,我只是浏览页面。但我找到了新的选项,我们可以在xaml中使用Frame,就像这样

  <Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="120"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <Border Background="White">

    </Border>
    <Button Content="next" Click="Button_Click" Background="Black" />

    <Grid Grid.Row="1">

        <Frame x:Name="Page1Frame" Background="Black" >
            <StackPanel>
                <Rectangle Height="100" Width="100" Fill="Red" Margin="5" />

                <Rectangle Height="100" Width="100" Fill="Red" Margin="5" />
                <Rectangle Height="100" Width="100" Fill="Red" Margin="5" />
                <Rectangle Height="100" Width="100" Fill="Red" Margin="5" />
            </StackPanel>
        </Frame>
    </Grid>

</Grid>

并像这样导航这个框架

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

在这个示例中,我的120高度网格保持不变,只是导航框架。 我只是想知道哪种方法最好用? 谢谢。

1 个答案:

答案 0 :(得分:0)

页面是页面,框架是框架,它们是不同的。

假设您当前的页面名为MainPage,如果要保留在MainPage中并更改根网格的第1行中的网格内容,则应使用:

 Page1Frame.Navigate(typeof(BlankPage1));

如果您想让MainPage转到另一个页面,您应该使用:

var rootFrame = Window.Current.Content as Frame; 
rootFrame.Navigate(typeof(BlankPage1));

在这种情况下,你看到的是一个没有120高度网格的空白页面。