-1

我在 C# 中有以下布局,其中 WindowsFormHost 托管 OpenGL 窗口。我想在它上面添加一个透明画布,我可以在其中绘制 2D 东西。但是,此代码不起作用。请帮忙。

 mc:Ignorable="d">
<Grid>
    <DockPanel>
        <WindowsFormsHost Grid.Column="0" x:Name="ScannerViewPanel"/>
        <Canvas Background="Transparent"/>

编辑:我添加画布后,OpenGL 内容不显示,而只显示不透明的画布。我试图使画布透明,将不透明度设置为 0,它仍然是不透明的。

4

2 回答 2

1

来自MSDN

在 WPF 用户界面中,您可以更改元素的 z 顺序以控制重叠行为。托管的 Windows 窗体控件在单独的 HWND 中绘制,因此它始终绘制在 WPF 元素之上。

你不能那样做。

于 2013-07-23T17:56:58.760 回答
0

您很可能遇到“空域”问题。您正在使用 OpenGL 的事实加剧了这种情况 - 一个无法解决此问题的 API。如果您使用的是 DirectX,则可以这样

于 2013-07-23T17:58:50.503 回答