我定义了2个页面(定义为导航:页面) 我将这两个页面放在主窗口上(主窗口是UserControl)
<Grid x:Name="LayoutRoot" Background="White">
<navigation:Frame
Source="/Views/Page1.xaml"
x:Name="Page1">
</navigation:Frame>
<navigation:Frame
Source="/Views/Page2.xaml"
x:Name="Page2">
</navigation:Frame>
</Grid>
现在,当我加载silverlight应用程序时 - 我看到page1已启动。 但是..我怎么能切换到page2?并回到第1页?
感谢您的帮助。
答案 0 :(得分:0)
首先,在您的示例中,Page2将显示在Page1上,因为它在网格上。
其次,导航框架不应该像这样使用。导航框架与浏览器URL匹配,您可以使用带有silverlight的浏览器后退按钮进行导航。
如果您的应用中有2个导航框,那么这就搞砸了。
我认为您应该只有1个导航框架可以从Page1和Page2切换。
答案 1 :(得分:0)
您可能看不到第2页,因为第1页占用了所有网格行。将每一帧粘贴在自己的行中。以下是1页上的两个帧的示例。 https://bitbucket.org/dbeattie/navdemo/src
<Grid>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="1*" />
<RowDefinition Height="1*" />
<RowDefinition Height="1*" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0"
Orientation="Vertical">
<TextBlock Text="MainView" />
<Button Content="Load Area1 with Sub3View"
Command="{Binding Path=Load1Command}" />
<Button Content="Load Area1 with Sub1View"
Command="{Binding Path=Load2Command}" />
<TextBox Text="{Binding Path=DataToPass, Mode=TwoWay}"></TextBox>
</StackPanel>
<Grid Grid.Row="1">
<Grid.RowDefinitions>
<RowDefinition Height=".5*" />
<RowDefinition Height="2*" />
</Grid.RowDefinitions>
<TextBlock Text="Area1" />
<nav:Frame Grid.Row="1"
Source="{Binding Path=FrameSource}" />
</Grid>
<Grid Grid.Row="2">
<Grid.RowDefinitions>
<RowDefinition Height=".5*" />
<RowDefinition Height="2*" />
</Grid.RowDefinitions>
<TextBlock Text="Area2" />
<nav:Frame Grid.Row="1"
JournalOwnership="OwnsJournal"
Source="{Binding Path=FrameSource2}" />
</Grid>
</Grid>
</Grid>