Windows 8 API 是否允许我编写使用 XAML 作为 UI 并使用 DirectX 呈现 3D 对象的应用程序?假设我正在编写一个 3D 建模应用程序。我想在 XAML 中创建许多对话框和 UI 元素,以及我将使用 DirectX 呈现的单个矩形窗口。我更喜欢使用 C++。这可能吗?
1 回答
好消息!看来 Windows 8 的发布版本将允许 Metro/XAML 和 DirectX 互操作!
这是我们在发布开发者预览版后听到的一个常见主题。像您这样的开发人员希望将 DirectX 的高性能即时模式呈现功能与 XAML 的丰富交互性、控制模型和设计时体验相结合。
我们听到了。借助 Consumer Preview,您现在可以将 XAML 和 DirectX 11 顺利集成到同一个 Metro 风格应用程序中,以创建快速流畅的体验。例如,您现在可以创建 DirectX 游戏并使用 XAML 处理输入、为平视显示器和菜单创建图形,或绑定到应用程序的数据模型。
为此,我们添加了 3 种新的 XAML 类型来支持广泛的 DirectX 互操作方案,每种方案都具有不同的功能:
SurfaceImageSource 支持将 DirectX 内容完整组合到 XAML 应用程序中。这允许将 DirectX 内容绘制到 XAML 可视化树中,这对于复杂的图像效果、数据可视化和其他即时模式绘图方案很有用。
VirtualSurfaceImageSource 用于大规模虚拟化内容。这针对需要平移和
缩放大型内容的应用程序,例如地图和文档查看器。SwapChainBackgroundPanel 面向全屏、以 DirectX 为中心的场景。这对于游戏和其他具有 XAML 覆盖的低延迟、全屏 DirectX 应用程序来说非常有用。
请查看此 msdn 页面以获取更多详细信息。
根据结果的好坏程度,您仍然可以选择放弃 Metro 来使用 WPF,因为 WPF 和 Direct3D 可以互操作。