C# 在全息空间中使用XAML

C# 在全息空间中使用XAML,c#,xaml,uwp,directx,hololens,C#,Xaml,Uwp,Directx,Hololens,我目前正在尝试将一些用户界面添加到我的全息应用程序中。 我的整个应用程序都是用DirectX编写的,我不会使用Unity 该应用程序的主要功能是在全息空间中显示3D体积,并与旋转和平移等手势交互 改进交互的一个想法是创建一些浮动窗口,添加高级操作和功能 在一个完美的世界中,我想在我的浮动窗口(浮动平面或广告牌)中绘制一个用XAML编写的界面,或直接由一些windows.UI.XAML.UIElement渲染器绘制的界面 因此,基本上我想将XAML元素渲染到Texture2D中,并尝试执行以下操作

我目前正在尝试将一些用户界面添加到我的全息应用程序中。 我的整个应用程序都是用DirectX编写的,我不会使用Unity

该应用程序的主要功能是在全息空间中显示3D体积,并与旋转和平移等手势交互

改进交互的一个想法是创建一些浮动窗口,添加高级操作和功能

在一个完美的世界中,我想在我的浮动窗口(浮动平面或广告牌)中绘制一个用XAML编写的界面,或直接由一些windows.UI.XAML.UIElement渲染器绘制的界面

因此,基本上我想将XAML元素渲染到Texture2D中,并尝试执行以下操作:

await CoreApplication.MainView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, async () =>
{
      RenderTargetBitmap renderBitmap = new RenderTargetBitmap();
      await renderBitmap.RenderAsync(PanoramicImage);
      XamlPixel = await renderBitmap.GetPixelsAsync();
});
问题是,RenderTargetBitmap.RenderAsync正在不确定地阻塞,我无法访问GetPixelsAsync函数

你们知道吗


提前感谢。

我在directx中为自己的uwp全息透镜应用程序工作了很长一段时间。 我们用direct2d解决了“UI问题”。。。可以将自制纹理渲染到rendertarget,然后将其用作ui元素的ShaderResourceView。我认为即使使用dispatcher,“现在”也无法在全息空间中呈现xaml控件。因此,我认为您需要编写自己的ui元素

按照microsoft的描述,使用xaml控件的唯一方法是在全息空间和正常模式之间切换:


无法复制您的问题。您的
全景图像是什么?我用网格进行了测试。可能还有更多关于环境的信息。我的全景图像也只是一个网格,但你是在全息空间中使用它吗?(带全息透镜装置的UWP)没有解决方案,我做了同样的事情。。。无论如何谢谢你:D