0

我在远程桌面应用程序中有一个 winform,它是使用带有大(常规)按钮的工具栏的容器面板动态构建的。该应用程序是用 C# 和 .NET 4.0 编写的。仅当我不最大化窗口时,应用程序才会被视为应有的状态(这意味着恢复的视图很好)。

现在,在 RDP 登录后 - 在大多数客户端计算机中 - 应用程序看起来很好(即使我们最大化和恢复)。在低分辨率客户端计算机 (800x600) 中,工具栏上的按钮不会显示在正确的位置(例如在 1024x768 客户端中)。

我使用了双缓冲,但它没有帮助......问题可能取决于也可能不取决于屏幕分辨率(可能是内存问题或其他问题)。不是本地化布局的问题。

下图显示了 Fine 和 Bad 状态:http: //imgur.com/gO4UJ,v7O9K

我可以做些什么来解决这个问题?

4

1 回答 1

1

好的,所以如果有人遇到这种情况,这就是问题所在:

在表单中,有一个空的重绘覆盖。创建表单的程序员正在用一个空方法覆盖重绘(不知道为什么,我想我会向我的团队询问业务逻辑)。

我是如何在开发环境中重现它的?按照 Albin Sunnanbo 的说明,我在初始化期间以最小化版本运行了 RDP 应用程序,我注意到在这个用例中也出现了大分辨率客户端......所以,我知道在执行窗口调整大小时会发生重绘 - 这让我怀疑方法...

==> 顺便说一句,我想这就是为什么继承如此糟糕,而继续使用 WPF 会更好。我花了 3 天时间才明​​白为什么会出现这个问题。

于 2012-11-12T14:38:32.727 回答