2016-04-25 82 views
6

我有一个任务:UWP和DirectX

“第二组分必须用C++编写,并且必须是一个UWP组件/部件将由任务的第一部分被使用。它必须是一个以透明背景绘制到SwapChain的DirectX组件。内容必须是必须绑定到当前鼠标位置的2D动画。内容必须通过一套公共方法进行控制。

DirectX组件必须放置在C#GUI的顶部,以便它将用作叠加层。 使其成为事件透明叠加层,它不得捕获任何GUI事件,否则会干扰C#应用程序。 使用C#主机将鼠标事件和内容更改发送到DX图层。

但我不知道如何结合UWP和DirectX。 我已经有功能UWP C#应用程序部分,下一步是什么?

我将不胜感激任何回应和想法。

+0

看有:http://www.unknowncheats.me/forum/c-and-c-/84234-external-directx-overlay-translated.html - 有如何编写一个简单的例子到directx设备的任何区域。关于捕获鼠标事件 - 您需要在WinMain函数中侦听WM_MOUSE ***类型的事件。 – VitaliyK

回答

1

您需要包括SwapChainPanelSwapChainBackgroundPanel控制到您的XAML文件。这个表面将被用来绘制你的DirectX内容。您在Visual C++模板中有一个默认的uwp示例,名为DirectX 11和XAML App。它可以帮助你理解管道,但是这个解决方案只有C++代码。

+0

他们正在使用SwapChainPanel或SwapChainBackgroundPanel控件来描述XAML + C#后台代码,该控件可以通过DirectX呈现。 DirectX没有内置的C#支持,但您可以使用第三方程序集,如[SharpDX](http://sharpdx.org/)。内置的Visual C++模板“DirectX 11和XAML App(通用Windows)”为C++代码隐藏功能提供了这一功能,但是没有内置的C#代码隐藏模板与DirectX结合使用。 –

+0

您可能想看看[Win2D](https://github.com/Microsoft/Win2D),它是Direct2D的C#包装器,特别是[Win2D Samples](https://github.com/) Microsoft/Win2D-Samples)存储库。 –

1

MonoGame!

这是一款基于XNA4的游戏框架,适用于UWP以及众多其他平台。你可以挑选样本来了解你需要什么。

http://www.monogame.net/