UWP C#切换框架内容问题和崩溃

时间:2018-11-01 10:45:22

标签: c# xaml uwp

我已经为这种设置苦苦挣扎了几天,找到了某种解决方案,但我认为这不是它应该如何工作的。

这是我的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);

然后一切正常。所以我想清除框架内容并等待其完成。但是我认为应该自动完成。有人可以解释我在这里做错了什么以及应该怎么做吗?

1 个答案:

答案 0 :(得分:0)

请在可能导致崩溃的SubPage1SubPage2中验证您的代码,您可以在页面卸载后清除资源。

或者,您可以尝试以下代码:

private void Edit_Checked(object sender, RoutedEventArgs e)
{
   RightFrame.Content = new SubPage1();
}

private void Edit_Unchecked(object sender, RoutedEventArgs e)
{
   RightFrame.Content = new SubPage2();
}