2016-04-25 89 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/