当 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,奇怪的是当您 运行 调试时它应该不会崩溃。
我正在使用新的 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,奇怪的是当您 运行 调试时它应该不会崩溃。