【问题标题】:WPF not rendering on remote desktopWPF 不在远程桌面上呈现
【发布时间】:2010-11-17 15:47:39
【问题描述】:

我在通过远程桌面连接呈现 WPF 应用程序时遇到问题。

应用程序 chrome 正在呈现,但没有任何内容通过,就好像窗口没有绘制一样。取而代之的是屏幕的先前内容显示在它的位置。

这是在 Vista 和 Win 7 上运行的应用程序的问题,远程控制来自 XP 和 Win7。

问题不是特定于应用程序的,如果我创建一个新的 WPF 应用程序,窗口上只有一个文本块,它也不会运行。 (VS2008中的windows预览也不会显示。)

让 WPF 在 RDP 下运行有什么技巧吗?

【问题讨论】:

  • 看来这是微软在 Win7 最终版本中修复的问题。我现在可以从运行 XP 和 Win7 的机器上查看在 win7 机器上运行的应用程序。谢谢你的帮助。让我们希望他们也将此修复程序放入 vista 中。

标签: wpf rendering remote-desktop


【解决方案1】:

我在 Kevin Dente 的博客(来自 twitter 帖子)上读到,他在 虚拟机中使用 WPF 应用程序时遇到了问题。 虽然与远程桌面不同,但问题可能相同. Kevin 能够通过在以下位置创建 DWORD 注册表值来禁用硬件加速来解决他的问题

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Avalon.Graphics\DisableHWAcceleration

然后将其设置为 1。

他的原始博文在这里:http://weblogs.asp.net/kdente/archive/2009/10/19/visual-studio-2010-beta-2-editor-performance-fix-running-on-a-virtual-machine.aspx

这可能不是您的确切解决方案,但也许它为您指明了正确的方向。

【讨论】:

  • 当屏幕被拔下时,我遇到了 WPF 应用程序在几个不同的远程支持应用程序(TeamViewer、Zoho、GotoAssist)下显示完全空白的问题。这成功了!请注意,我必须创建那个注册表项,它还没有。
  • 这对我有用。我在没有连接显示器的远程(Teamviewer)计算机上运行 VS 2015。 WPF 控件不可见,但没有报告错误。我从 Guru3D 下载了一个 DirectX 基准测试应用程序,它的行为方式相同......这让我认为它与 DirectX 有关。无论如何,这似乎已经解决了这个问题,但我讨厌制作注册表项。
  • 这为我解决了问题。 VS 2019 通过 Chrome 远程桌面。
  • 如果您使用远程连接到无头机器,此解决方案绝对有效。我已经用了好几年了,今天仍然在 Windows 10 上使用它。我还安装了“虚拟/虚拟”显示适配器,这也解决了这个问题,但要花钱。
  • 为我修复了它,也通过 Chrome 远程桌面修复了 VS2019。非常感谢!
【解决方案2】:

WPF 应该通过 RDP 渲染;它足够聪明,知道什么时候可以在硬件中渲染,什么时候不能,它会恢复到自己的基于 GDI+ 的软件渲染。我会确保您在远程计算机上运行 .NET Framework 3.5 SP1,因为远程处理的更改可能会带来问题。 (请参阅下面的链接。)

在过去的 6 个月里,我一直在开发 WPF 应用程序,它在 RDP 上运行良好。 (从 Vista 和 Win7 到 XP、Vista 和 Server 2003。)然而,一个重要的警告是它使用 Classic 主题呈现。因此,如果您使用的控件没有经典主题,它们将不会呈现。如果您只是在窗口上放置一个文本框,那么显然这不是您的问题。

查看此问题以获取一些可能有用的链接:Are there problems with rendering WPF over Remote Desktop under Windows XP?

【讨论】:

    【解决方案3】:

    您是否也尝试过 Win7 最新 RDP - Win7 连接?问题是 WPF 不使用 GDI 来绘制元素。

    VNC 客户端(如 UltraVNC)可能会为您解决问题,因为它们使用更简单的算法,更像是发送位图。

    【讨论】:

    • 是的,我目前正在运行 Win7 到 Win7 (7100) RDP,但它没有任何效果。老实说,我不会去 vnc,这是目前在我的家用机器上运行的一次性个人应用程序,我希望能够远程监控。如果我不能通过 RDP 做到这一点,我更有可能将其移至 WinForms 并更改远程访问软件。 Google / Bing 搜索表明应该可以通过 RDP 执行此操作。我还没有找到这个问题的另一个例子。
    【解决方案4】:

    第一次通过 RDP 测试时,我遇到了功能区窗口无法正确显示的问题 - 透明背景为白色,缺少关闭最小化/最大化按钮,窗口底部的圆角是方形的,顶行的功能区按钮几乎无法选择。

    原来对我来说有一个简单的解决方法。右键单击 RDP 连接图标(我已将其保存在桌面上),选择“编辑”,然后选择“体验”选项卡,将“自动检测连接质量”更改为“局域网(10 Mbps 或更高)”。

    这为我解决了问题。

    阿德

    【讨论】:

      【解决方案5】:

      我和提问者有同样的问题。标准的现成复选框未正确呈现。我只能在悬停复选框时查看它是否被选中。否则,选中和未选中之间没有区别。重要提示:将前景设置为白色时会发生这种情况(请参阅此处:https://social.msdn.microsoft.com/Forums/vstudio/en-US/1c03db49-7e53-4cbb-9dd1-b328017c4453/wpf-checkbox-and-radiobutton-check-mark-not-showing-under-xp-windows-classic-theme-and-remote?forum=wpf

      【讨论】:

        【解决方案6】:

        我们的应用程序曾经在自定义进度条上遇到过这个问题。 我们通过将边框控件的背景颜色设置为白色来解决此问题。这让我认为透明背景存在问题

        【讨论】:

        • 我也有过同样的经历。在通过 SetWindowCompositionAttribute API 实现模糊的 WPF Windows 上。
        【解决方案7】:

        无需特殊技巧即可让 WPF 内容在远程桌面上显示。我们基于 WPF 的应用程序在 RDP 上渲染得很好(在许多机器上尝试过),没有任何问题。我们甚至使用了动画、渐变、WriteableBitmap 等。没有任何问题。

        【讨论】:

        • 我也有这个问题。您的回答完全具有误导性,使人们认为问题是错误的。
        • 错误答案。仅仅因为您没有问题并不意味着问题不存在。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-07-04
        • 2019-04-13
        • 2011-06-02
        • 2019-09-21
        • 2021-08-26
        • 2020-10-29
        • 1970-01-01
        相关资源
        最近更新 更多