0

我可以打开上下文菜单,但无法通过 VNC 查看打开的菜单列表。(我知道我可以通过直接检查 vnc 服务器机器来打开上下文菜单)我在不同的 vnc 服务器/客户端机器上进行了测试(尽管它们都是 windows Vista)和不同的 wpf 应用程序,但我仍然看不到任何菜单列表.

这是报告的问题吗?我找到了一些有关与 windows 桌面相关的 wpf 问题的信息,但我不了解 vnc。

补充:我在我的 vnc 环境下的 windows 本机应用程序或 windows 窗体应用程序上没有这个问题。

4

5 回答 5

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的高性能远程桌面访问软件解决方案。

高温下,

参考
-用于解决 WPF 中的图形问题的 Microsoft 指南。
- WPF 中的硬件加速
- HP 远程图形软件


更新:对于其他搜索并找到此答案的人,您需要更改 VNC 客户端设置以启用alpha blending。正如@mcdrewski 所指出的,默认情况下 VNC 不会检测/渲染 alpha 混合窗口。启用 alpha 混合会产生成本,您会注意到 VNC 客户端有点滞后。

于 2010-06-11T00:35:36.977 回答
3

解决方法是:勾选VNC Server的管理属性中的“Capture alpha blending”选项——henon

于 2010-10-14T10:57:16.113 回答
1

我能够在 VNC 中显示 Alpha 混合窗口或菜单的唯一方法是在服务器的 VNCconfig 应用程序中的桌面下关闭“在连接 VNC 查看器时使屏幕空白”选项。

于 2014-12-13T04:56:51.660 回答
0

它只是发生在 WPF 应用程序或任何其他应用程序上吗?尝试将桌面颜色质量更改为 16 位。

于 2010-06-07T14:07:16.280 回答
0

在 VNC 服务器选项中查找名为UseCaptureBlt的选项并将其标记为TRUE

于 2015-12-18T18:03:31.543 回答