简单的问题,我不知道答案。
有没有办法只使用一个xaml页面(至少一个" main"页面)来模拟多个页面。即相同:
this.Frame.Navigate(typeof(Page2), null);
但只使用一页?
非常感谢,感谢任何帮助。
答案 0 :(得分:0)
您可以使用Frame
控件在主页中托管其他页面:
<Frame Name="subFrame" Source="MyPage.xaml" />
然后,您可以使用subFrame.Navigate
作为示例。
答案 1 :(得分:0)
如果您具体指的是能够返回的行为(因此意味着您拥有导航堆栈),您可以通过以下方式访问它:
((Frame)Window.Current.Content).BackStack
你也可以手动玩它。
您可以将参数传递给导航方法,并在导航中导航以访问传递的参数(可能使用它们来加载不同的页面部分)
protected override void OnNavigatedTo(NavigationEventArgs e)
{
var param = e.Parameter as SomeType;
}
答案 2 :(得分:0)
你必须做很多工作,但这是可能的,是的。
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid x:Name="FirstContent"
Grid.Row="0">
< ... whatever ... >
</Grid>
<Grid x:Name="SecondContent"
Grid.Row="0"
Visibility="Collapsed">
< ... whatever ... >
</Grid>
<Grid x:Name="NavigationRow"
Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
< ... navigation controls down here ... >
</Grid>
</Grid>
使用您在NavigationRow
中定义的控制元素,通过使用FirstContent
属性(加上动画)来切换SecondContent
和Visibility
(或任何您想要的内容)
现在为什么你想要这样做,我不知道。你在这里做了很多额外的工作。