【问题标题】:Metro style app with DirectX portion带有 DirectX 部分的 Metro 风格应用程序
【发布时间】:2024-01-21 01:35:01
【问题描述】:

Windows 8 API 是否允许我编写一个使用 XAML 作为 UI 并使用 DirectX 渲染 3D 对象的应用程序?假设我正在编写一个 3D 建模应用程序。我想在 XAML 中制作很多对话框和 UI 元素,以及我将使用 DirectX 呈现的单个矩形窗口。我更喜欢使用 C++。这可能吗?

【问题讨论】:

    标签: c++ xaml directx windows-8 microsoft-metro


    【解决方案1】:

    好消息!看来 Windows 8 的发布版本将允许 Metro/XAML 和 DirectX 互操作!

    这是我们在发布开发者预览版后听到的一个常见主题。像您这样的开发人员希望将 DirectX 的高性能即时模式渲染功能与 XAML 丰富的交互性、控制模型和设计时体验相结合。

    我们听到了。借助消费者预览版,您现在可以将 XAML 和 DirectX 11 顺利集成到同一个 Metro 风格应用程序中,以创建快速流畅的体验。例如,您现在可以创建 DirectX 游戏并使用 XAML 处理输入、为平视显示器和菜单创建图形,或绑定到应用的数据模型。

    为此,我们添加了 3 种新的 XAML 类型以支持广泛的 DirectX 互操作场景,每种场景都具有不同的功能:

    • SurfaceImageSource 支持将 DirectX 内容完全组合到 XAML 应用程序中。这允许将 DirectX 内容绘制到 XAML 可视化树,适用于复杂的图像效果、数据可视化、 和其他即时模式绘图场景。

    • VirtualSurfaceImageSource 用于大规模虚拟化内容。这是针对需要平移和
      大型内容的缩放,例如地图和文档查看器。

    • SwapChainBackgroundPanel 面向全屏、以 DirectX 为中心的场景。这非常适合游戏和其他低延迟、全屏 带有 XAML 覆盖的 DirectX 应用。

    Source

    查看this msdn page了解更多详情。

    根据结果的好坏程度,您仍然可以选择放弃 Metro 使用 WPF,因为 WPF 和 Direct3D 可以互操作。

    【讨论】:

    • 所以隧道里有一盏灯。如果我选择 WPF 而不是 Metro,我可以在 Windows 8 App Store 中销售应用程序吗?
    最近更新 更多