我可以打开上下文菜单,但无法通过VNC查看打开的菜单列表。 (我知道我可以通过直接检查vnc服务器机器来打开上下文菜单) 我在不同的vnc服务器/客户端机器上测试过(尽管它们都是Windows Vista),以及不同的wpf应用程序,但我仍然无法看到任何菜单列表。
这是一个报道的问题吗?我找到了一些与Windows桌面有关的wpf问题的信息,但我不知道vnc。
补充:我在vnc环境下的Windows原生应用程序或Windows窗体应用程序上没有这个问题。
答案 0 :(得分:3)
我没有阅读/发现有关通过远程连接查看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部署high-performance remote desktop access software解决方案。
HTH,
<强>参考强>
- Microsoft guidelines for troubleshooting graphic issues in WPF.
- Hardware Acceleration in WPF
- HP Remote Graphics Software
更新:对于搜索并找到此答案的其他人,您需要更改VNC客户端设置以启用 Alpha混合。正如@mcdrewski所指出的那样,默认情况下VNC不会检测/渲染alpha混合窗口。启用Alpha混合会产生成本,您会注意到VNC客户端滞后一点。
答案 1 :(得分:3)
解决方案是:检查VNC服务器管理员属性中的“捕获alpha混合”选项 - 赫农
答案 2 :(得分:1)
我能够在VNC中显示Alpha混合窗口或菜单的唯一方法是在服务器的VNCconfig应用程序的桌面下关闭“在VNC查看器连接时将屏幕清空”选项。
答案 3 :(得分:0)
它只是发生在WPF应用程序或任何其他应用程序上吗?尝试将桌面颜色质量更改为16位。
答案 4 :(得分:0)
在VNC服务器选项中,查找名为 UseCaptureBlt 的选项,并将其标记为 TRUE