我没有阅读/发现任何关于通过远程连接查看 WPF 应用程序的已知问题。但是,如果您考虑远程连接是如何工作的,我想对这个问题进行一些猜测,甚至可能是一个解决方案。
当您安装任何远程桌面软件时,您实际上做了两件事:设置中继器以中继输入命令并添加充当帧服务器的显示适配器,即,它不是将屏幕内容输出到监视器而是发送信息通过网络。
如您所知,WPF 利用 DirectX 来加速其渲染(受 GPU 限制),不幸的是,所有显卡加速都不能通过远程桌面连接工作。
我认为在您的特定情况下发生的事情是 WPF 在尝试绘制上下文菜单时并没有回退到使用它的软件渲染管道 - 可能是因为上下文菜单是Popup
一个单独的可视化树。
值得尝试的是强制您的 WPF 应用程序使用软件呈现。
void OnLoaded(object sender, EventArgs e)
{
HwndSource hwndSource = (HwndSource)PresentationSource.FromVisual(this);
HwndTarget hwndTarget = hwndSource.CompositionTarget;
hwndTarget.RenderMode = RenderMode.SoftwareOnly;
}
如果确实如此,您有两个选择:强制 WPF 使用软件渲染管道或尝试部署Hewlett Packard的高性能远程桌面访问软件解决方案。
高温下,
参考
-用于解决 WPF 中的图形问题的 Microsoft 指南。
- WPF 中的硬件加速
- HP 远程图形软件
更新:对于其他搜索并找到此答案的人,您需要更改 VNC 客户端设置以启用alpha blending。正如@mcdrewski 所指出的,默认情况下 VNC 不会检测/渲染 alpha 混合窗口。启用 alpha 混合会产生成本,您会注意到 VNC 客户端有点滞后。