【发布时间】:2014-07-03 01:44:08
【问题描述】:
我在 WPF 项目中添加了对 WinRT dll 的引用,并且我想在 WPF 窗口中使用 SwapChainPanel。
真的有可能吗?现在我不能让它工作。
【问题讨论】:
标签: wpf winapi windows-runtime winrt-xaml direct-composition
我在 WPF 项目中添加了对 WinRT dll 的引用,并且我想在 WPF 窗口中使用 SwapChainPanel。
真的有可能吗?现在我不能让它工作。
【问题讨论】:
标签: wpf winapi windows-runtime winrt-xaml direct-composition
Microsoft.Toolkit.Wpf.UI.Controls 的 NuGet 包描述提到了 SwapChainPanel,但我没有在 WPF 中找到使用此控件的任何示例。
SwapChainPanel :提供一个托管界面,其中 Microsoft DirectX 交换链提供可以呈现到 XAML UI 中的内容。 SwapChainPanel 元素是呈现 Microsoft DirectX 图形然后在 XAML 页面中呈现这些视觉效果的应用的关键组件。
【讨论】:
目前尚未正式支持 - 可能需要 Windows 中的一些私有 API,但由于 Stardock 可以实现其 ModernMix - 可能有一些方法可以让它工作。但问题是——你不必那样做。您可以通过其他方式使用 DirectX 将内容呈现到 WPF 窗口。我还没有这样做,这可能需要做很多工作,但 DirectX 中的任何事情都是如此。您可以查看DirectComposition 或D3DImage 类。也许使用Direct2D with WPF 的文章可以是一个很好的示例解决方案。
【讨论】:
您不必像 Filip Skakun 所说的那样,但您可以!试试 SlimDX 或 SharpDX。它们是 DirectX 在 C# 中的实现。
【讨论】:
SwapChainPanel 控件放入 WPF 应用程序中。它们是 DirectX 的 C# 包装器,虽然它们可能具有易于在窗口中托管的辅助类或控件 - 这并不是问题的确切含义。还有一个用于 DirectX 10-11 的托管包装器,我帮助构建了一个名为 Windows API Code 的 Direct2D 文章。我不确定它可以使用多长时间,因为代码库页面将被停用......明天? :)