如何在 WinRT / WinUI3 中打开新窗口?我想单击一个按钮并在当前/主窗口顶部打开另一个浮动窗口。
我已经尝试了几个零运气样本的代码:
- https://docs.microsoft.com/en-us/windows/apps/windows-app-sdk/windowing/windowing-overview
- 我无法导入 <winrt/Microsoft.UI.Windowing.h>(dll 不加载)
- https://github.com/microsoft/Windows-universal-samples/blob/main/Samples/AppWindow/cppwinrt/Scenario3_Size.h
- 这使用旧的 Windows:: 命名空间(不合适)
- https://github.com/microsoft/WinUI-3-Demos/tree/master/src/ContosoAirlinePOS
- 不导航到新窗口(BoardingPassWindow 实际上是一个页面,而不是一个窗口)
Frame.Navigate(xaml_typename<NewWindowClass>())
- 不起作用/抛出异常
-
winrt::Microsoft::UI::Xaml::Controls::Frame rootFrame{ nullptr }; auto content = Window::Current().Content(); if (content) { rootFrame = content.try_as<winrt::Microsoft::UI::Xaml::Controls::Frame>(); }
- 以上片段^
Window::Current().Content();
调用时抛出异常
appWindow = Microsoft::UI::Xaml::Window(this, {}); appWindow.Activate()
- 抛出异常
大多数 C++ WinUI3 文档中仍然只有 C# 代码示例,因此对我来说基本上没用。我只想打开一个新窗口,别无其他。