Windows 8 DirectX交换链背景面板问题

本文关键字:问题 背景 DirectX 交换 Windows | 更新日期: 2023-09-27 18:00:21

我有两个不同的背景:我在WPF/XAML/C#应用程序开发方面有丰富的经验,在C++/DDirectX开发方面也有同样的经验。我听说可以同时使用DirectX和XAML,我很兴奋,但现在我遇到了困难。

我正在尝试在WPF应用程序中使用SwapChainBackgroundPanel。但我正在尝试使用C#作为底层语言。我一直遇到这样的问题,无论我创建的C#项目的类型是什么(PCL、WPF、Windows应用商店),这些类型都没有定义[即,我一直在寻找SwapChainBackgroundPanel和其他一些DX东西,如设备等]

所以我的问题是:这在C#中是如何工作的?我在MSDN中看到了用C++完成的简单射击示例,它很有道理;我明白了。但当我试图用C#做这件事时,我觉得我错过了其中一个"明白"。

任何建议,或者可能是一个例子的链接,或者充其量是一个关于设置C#/XAML/DX应用程序的小教程,都将是令人惊叹的。谢谢大家。

Windows 8 DirectX交换链背景面板问题

没有可用于WPF应用程序的SwapChainBackgroundPanel(位于PresentationCore中)。最接近的是D3DImage类,但它并不完全相同。请参阅此讨论。

我认为你不能完全利用C#的Windows8Store应用程序(SwapChainBackgroundPanel)的DirectX功能。您将不得不在C++中完成DirectX工作,如您所描述的示例中所示。您当然可以像本例中那样将这三个(Xaml、C#、C++)组合在一起,但我认为一个100%的C#应用程序是不可能的。

答案是错误的。通过包装器可以充分利用C#。我自己用SharpDx做到了这一点,这实际上是微软建议在C#中使用DirectX的一个建议。

至于XAML库的选择,通用Windows应用程序10或Windows应用商店应用程序8是最好的选择。使用SwapChainPanel而不是SwapChainBackgroundPanel。