当 NavigationView 是页面上唯一的东西时,它会抛出异常

NavigationView gives an exception when it's the only thing on the page

我正在使用新的 Project Reunion 0.5/WinUI3 Preview 5。从 Preview 4 升级后,我开始收到此错误:

Exception thrown at 0x76C5A8B2 in ReunionTest.exe: Microsoft C++ exception: winrt::hresult_error at memory location 0x00D7E290.

输出显示:

Exception thrown at 0x76C5A8B2 (KernelBase.dll) in ReunionTest.exe: 0x40080202: WinRT transform error (parameters: 0x8000000B, 0x80070490, 0x00000014, 0x00D7BCCC).
'ReunionTest.exe' (Win32): Loaded 'C:\Windows\SysWOW64\Windows.Energy.dll'. Symbols loaded.
'ReunionTest.exe' (Win32): Loaded 'C:\Windows\SysWOW64\rmclient.dll'. Symbols loaded.
'ReunionTest.exe' (Win32): Loaded 'C:\Windows\SysWOW64\MrmCoreR.dll'. Symbols loaded.
'ReunionTest.exe' (Win32): Loaded 'C:\Windows\SysWOW64\Windows.StateRepositoryClient.dll'. Symbols loaded.
Exception thrown at 0x76C5A8B2 (KernelBase.dll) in ReunionTest.exe: 0x40080202: WinRT transform error (parameters: 0x8000000B, 0x80070490, 0x00000014, 0x00D7C5C0).

    ReunionTest.exe' (Win32): Loaded 'C:\Windows\SysWOW64\Windows.Graphics.dll'. Symbols loaded.
    Exception thrown at 0x76C5A8B2 (KernelBase.dll) in ReunionTest.exe: 0x40080202: WinRT transform error (parameters: 0x8000000B, 0x80070490, 0x00000014, 0x00D7D934).
    Exception thrown at 0x76C5A8B2 (KernelBase.dll) in ReunionTest.exe: WinRT originate error - 0x80070490 : 'Windows.Graphics.Display: GetForCurrentView must be called on a thread that is associated with a CoreWindow.'.
    onecore\com\combase\winrt\error\restrictederror.cpp(1016)\combase.dll!75E6AA06: (caller: 75D85230) ReturnHr(1) tid(3bbc) 8007007E The specified module could not be found.
    Exception thrown at 0x76C5A8B2 in ReunionTest.exe: Microsoft C++ exception: winrt::hresult_error at memory location 0x00D7E290.

这就是全部XAML。

    <Window
    x:Class="ReunionTest.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:ReunionTest"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition />
            <RowDefinition />
        </Grid.RowDefinitions>
        <NavigationView x:Name="NavView" 
                    Grid.Row="0"
                    >



            <Frame x:Name="NavFrame" />
        </NavigationView>
    </Grid>

</Window>

后面的代码。

using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Controls.Primitives;
using Microsoft.UI.Xaml.Data;
using Microsoft.UI.Xaml.Input;
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Navigation;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;

// To learn more about WinUI, the WinUI project structure,
// and more about our project templates, see: http://aka.ms/winui-project-info.

namespace ReunionTest
{
    /// <summary>
    /// An empty window that can be used on its own or navigated to within a Frame.
    /// </summary>
    public sealed partial class MainWindow : Window
    {
        public MainWindow()
        {
            this.InitializeComponent();
        }
    }
}
    <Application
    x:Class="AAON.Ecat.WinUI.Reunion.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:AAON.Ecat.WinUI.Reunion"
    xmlns:pb="using:AAON.Ecat.WinUI.Reunion.ResourceDictionaries"
    RequestedTheme="Dark">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
                <!-- Other merged dictionaries here -->
                <pb:PageBackground />
            </ResourceDictionary.MergedDictionaries>
            <!-- Other app resources here -->
            <SolidColorBrush x:Key="NavigationViewDefaultPaneBackground" Color="#F9F9F9" />
            <SolidColorBrush x:Key="NavigationViewTopPaneBackground" Color="#F9F9F9" />
        </ResourceDictionary>
    </Application.Resources>
</Application>

添加两个 SolidColorBrush,奇怪的是当您 运行 调试时它应该不会崩溃。