我已经为这种设置苦苦挣扎了几天,找到了某种解决方案,但我认为这不是它应该如何工作的。
这是我的xaml页面设置:
<Page
...
<SplitView IsPaneOpen="True" DisplayMode="Inline" OpenPaneLength="300">
<SplitView.Pane>
<Grid>
<ToggleButton x:Name="Edit" IsEnabled="False" Checked="Edit_Checked" Unchecked="Edit_Unchecked"/>
</Grid>
</SplitView.Pane>
<Frame x:Name="RightFrame">
</Frame>
</SplitView>
</Page>
切换按钮的代码:
private void Edit_Checked(object sender, RoutedEventArgs e)
{
RightFrame.Navigate(typeof(SubPage1));
}
private void Edit_Unchecked(object sender, RoutedEventArgs e)
{
RightFrame.Navigate(typeof(SubPage2));
}
因此,基本上,切换按钮可切换splitview内容。子页面只是空白页面。问题是导航发生时应用程序崩溃。 在调用导航之前,我已经注意到了这一点:
RightFrame.Content = null;
Thread.Sleep(1000);
然后一切正常。所以我想清除框架内容并等待其完成。但是我认为应该自动完成。有人可以解释我在这里做错了什么以及应该怎么做吗?
答案 0 :(得分:0)
请在可能导致崩溃的SubPage1
和SubPage2
中验证您的代码,您可以在页面卸载后清除资源。
或者,您可以尝试以下代码:
private void Edit_Checked(object sender, RoutedEventArgs e)
{
RightFrame.Content = new SubPage1();
}
private void Edit_Unchecked(object sender, RoutedEventArgs e)
{
RightFrame.Content = new SubPage2();
}