我在通过远程桌面连接呈现 WPF 应用程序时遇到问题。
应用程序 chrome 正在呈现,但没有任何内容通过,就好像窗口没有绘制一样。相反,屏幕的先前内容显示在它的位置。
这是在 Vista 和 Win 7 上运行的应用程序的问题,远程控制来自 XP 和 Win7。
问题不是特定于应用程序的,如果我创建一个新的 WPF 应用程序,窗口上只有一个文本块,它也不会运行。(VS2008 中的窗口预览也不会显示。)
让 WPF 在 RDP 下运行有什么技巧吗?
我在通过远程桌面连接呈现 WPF 应用程序时遇到问题。
应用程序 chrome 正在呈现,但没有任何内容通过,就好像窗口没有绘制一样。相反,屏幕的先前内容显示在它的位置。
这是在 Vista 和 Win 7 上运行的应用程序的问题,远程控制来自 XP 和 Win7。
问题不是特定于应用程序的,如果我创建一个新的 WPF 应用程序,窗口上只有一个文本块,它也不会运行。(VS2008 中的窗口预览也不会显示。)
让 WPF 在 RDP 下运行有什么技巧吗?
我在 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 应该通过 RDP 渲染;它足够聪明,知道什么时候可以在硬件中渲染,什么时候不能,它会恢复到自己的基于 GDI+ 的软件渲染。我会确保您在远程计算机上运行 .NET Framework 3.5 SP1,因为远程处理的更改可能会带来问题。(见下面的链接。)
在过去的 6 个月里,我一直在开发 WPF 应用程序,它在 RDP 上运行良好。(从 Vista 和 Win7 到 XP、Vista 和 Server 2003。)然而,一个重要的警告是它使用 Classic 主题呈现。因此,如果您使用的控件没有经典主题,它们将不会呈现。如果您只是在窗口上放置一个文本框,那么显然这不是您的问题。
查看此问题以获取一些可能有用的链接:在 Windows XP 下通过远程桌面呈现 WPF 是否存在问题?
您是否也尝试过 Win7 最新 RDP - Win7 连接?问题是 WPF 不使用 GDI 来绘制元素。
VNC 客户端(如 UltraVNC)可能会为您解决问题,因为它们使用更简单的算法,更像是发送位图。
我和提问者有同样的问题。标准的现成复选框未正确呈现。我只能在悬停复选框时查看它是否被选中。否则,选中和未选中之间没有区别。重要提示:将前景设置为白色时会发生这种情况(请参见此处: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 )
我们的应用程序曾经在使用自定义进度条时遇到过这个问题。我们通过将边框控件的背景颜色设置为白色来解决此问题。这让我认为透明背景存在问题
第一次通过 RDP 进行测试时,我只是遇到了功能区窗口无法正确显示的问题 - 透明背景为白色,缺少关闭最小化/最大化按钮,窗口底部的圆角是方形的,顶部一排功能区按钮几乎无法选择。
原来对我来说有一个简单的解决方法。右键单击 RDP 连接图标(我已将其保存在桌面上),选择“编辑”,然后选择“体验”选项卡,将“自动检测连接质量”更改为“LAN(10 Mbps 或更高)”。
这为我修好了。
阿德
无需特殊技巧即可让 WPF 内容跨远程桌面显示。我们基于 WPF 的应用程序在 RDP 上渲染得很好(在许多机器上尝试过),没有任何问题。我们甚至使用了动画、渐变、WriteableBitmap 等,没有任何问题。