在 UWP 中混合 DirectX 12 和 XAML 控件

Mix DirectX 12 and XAML controls in UWP

我想用 C++/CX 和 DirectX 12 创建一个 UWP 应用程序 (XAML),这样我就可以混合使用 XAML 控件(比如网格、按钮...)和DirectX,类似于关卡编辑器,但我正在努力寻找一种方法来初始化 DirectX 以在特定控件(如网格)内呈现。

基本模板和所有其他教程仅展示如何在应用程序的整个区域内进行操作。创建设备资源时,我们使用 SetWindow(CoreWindow::GetForCurrentThread());

设置 window 绘制位置

有没有办法从 xaml 控件使用 hwnd 创建设备资源,有没有办法为特定控件获取 hwnd?

文章DirectX - Using XAML with DirectX and C++ in Windows Store Apps中的信息均适用于Direct3D 11或Direct3D 12与XAML的混合。

It's not clear why you'd want to write your level editor with DirectX 12. In general DirectX 11 is a much easier-to-use API. Unless you are already hitting the CPU-side performance limits of DirectX 11, it's probably more work than it's worth for a level editor.

为了进一步参考,这里有一个官方代码示例:https://blogs.msdn.microsoft.com/windowsappdev/2012/03/15/combining-xaml-and-directx/