我有一个 WPF 应用程序,其中我在后端有一个本机 directx r 渲染引擎,在前端有一个 WPF 视图。directx 渲染引擎返回一个 WPF 表面,我在每次渲染调用时都会更新它。
我已经通过 D3DImage 将两者链接起来,如下所示在我的用户控制下:
<Grid>
<Grid.Background>
<ImageBrush ImageSource="{Binding D3DRenderImage}" />
</Grid.Background>
</Grid>
在每次渲染调用开始时,我会从本机回调到托管端,在其中我锁定图像,并且在渲染调用结束时的类似回调中,我会收到渲染完成回调,其中我使图像并解锁。
在任何视图操作操作中,我都会通知底层渲染引擎,它会开始渲染序列。这一切都完美地发生了。问题是我的背景图像没有立即刷新。如果我将焦点更改为其他应用程序窗口并返回到我的应用程序窗口,它会刷新。
这是奇怪的部分,如果我向用户控件添加进度条,视图会完美更新吗?对幕后可能发生的事情有任何想法吗?
PS 我是 WPF 新手,因此我可能无法正确解决问题。对于那个很抱歉 :-(