简单的问题,我不知道答案。多个页面的一个xaml页面?
是否有一种方法只使用一个xaml页面(至少一个“主”页面)来模拟多个页面。只使用一个页面
this.Frame.Navigate(typeof(Page2), null);
但:即同?
非常感谢,任何帮助表示赞赏。
简单的问题,我不知道答案。多个页面的一个xaml页面?
是否有一种方法只使用一个xaml页面(至少一个“主”页面)来模拟多个页面。只使用一个页面
this.Frame.Navigate(typeof(Page2), null);
但:即同?
非常感谢,任何帮助表示赞赏。
可以使用Frame
控制托管您的主网页内的另一个页面:
<Frame Name="subFrame" Source="MyPage.xaml" />
然后可以使用subFrame.Navigate
与你的榜样。
如果你指的是能够回去(因此这意味着你有一个导航堆栈),您可以访问它与具体的行为:
((Frame)Window.Current.Content).BackStack
,你可以用它手动也发挥。
你可以传递参数给您的导航方法,并在您的导航到具有访问传递的参数(也许使用它们来加载不同的页面部分)
protected override void OnNavigatedTo(NavigationEventArgs e)
{
var param = e.Parameter as SomeType;
}
你必须做很多的工作,但这是可能的,是的。
<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>
通过与他们的Visibility
性质(加动画)播放使用您在NavigationRow
定义了FirstContent
和SecondContent
(或任何你想要的)之间进行切换的控制元件。
现在至为什么你想这样做,我不知道。这是你在这里做的很多额外的工作。
难道这不会做同样的事情吗?转到视图中的其他xaml页面? – Badja
我已经稍微更新了代码 - 它只会浏览框架控件中的页面 - 框架中的其余页面将保持不变。 – user882807
我明白了,所以我会用这个代码导航到每个“',但是'subFrame's都会在同一个'xaml'文件中? – Badja