【发布时间】:2015-01-12 01:16:09
【问题描述】:
我有一个 SharpDX 项目即将完成。它使用 Kinect 进行交互。因此,我的项目将 WPF 用于 Kinect 区域和 KinectUserViewer 对象。到目前为止,SharpDX 在所有方面都表现出色,但是,当它到达程序中大量使用 direct3D 的某个部分时,它开始闪烁。这显然与 D3Dimage(由 MainWindow.xaml 中的 SharpDXElement 使用)可能“从根本上损坏且不适合 WPF 中的高效 D3D 渲染”[1] 的事实有关。有没有办法让我的 WPF 元素不被 direct3D 闪烁?
【问题讨论】:
-
你能显示一些相关的代码吗?在回答这样的问题时,看看你在哪里会非常有帮助。
-
它有超过 15000 行代码。很难找到相关的代码。它使用 toolkit.game 类进行绘制和更新循环。我主要使用 spritebatch,但其中一部分同时使用 xna 和 direct3D,包括有问题的部分。有没有你认为特别有用的部分?
-
说,我查看了您的链接,当我查看您引用的上下文时,他们还提到了使用 Windows 窗体的有限解决方法。如果我理解解决方法,那基本上将在 D3DImage 替换区域中托管一个 Windows 窗体 - 我认为 only 该区域将无法使用 XAML 元素。这对你有用吗?还是我错过了解决方法的性质?
-
按照我的解释,这使得我无法将 KinectUserViewer 显示在 sharpDX 内容之上。我可能错了。
-
是的,我玩了一个示例,发现 WPF 对象无法放置在表单顶部。 KinectUserViewer 是一个位于屏幕顶部和中心的小窗口。它通过sharpDX在它的左边和右边有时间和天气。我想如果有一种方法可以在sharpDX中显示用户视图,我可以使用该修复程序,但我不知道该怎么做。
标签: c# wpf xaml sharpdx d3dimage