我的某些系统上的WPF应用程序出现问题。也就是说,每当应用程序启动时,布局似乎完全被破坏(不可读的文本,元素和控件缺少部分,出现在它们不应该出现的地方等)。
我已经读到它与图形驱动程序有关,但是当他们甚至无法确保在大多数系统上正确呈现时,Microsoft如何期望我们使用这种技术?
我必须在Win-forms上重写我的最新应用程序,因为我不能确定这样的事情不会发生在我的客户的计算机上(并且考虑到数字游戏,它肯定会在某些时候) 。例如:
这应该是放置在组框内的gridview。然而,组合框似乎完全被撕裂,并将其子元素置于错误的位置。
就像我说的那样,每次在每个系统上都不会发生这种情况,但它经常发生,它已成为我的主要关注点。
任何建议,除了重写Winforms中的所有内容(这是我的第一个选项)?
答案 0 :(得分:0)
您确定这是与驾驶员相关的问题吗?司机不太可能搞砸布局。它看起来像布局引擎的问题,或者可能是问题机器上的主题样式中的错误。
我会按顺序执行以下操作并检查结果。
我认为您猜测问题与显示驱动程序有关。你确定吗?我使用3.5 SP1,在>上运行一些相当复杂的UI 200K机器没有问题。
我在NVidia驱动程序上遇到了一个与显示驱动程序相关的问题,但这些问题特定于阴影并且在MS连接站点上正确记录。
答案 1 :(得分:0)
为防止出现驱动程序问题,您可以切换到Windows的软件渲染,这些代码存在以下问题:
(PresentationSource.FromVisual(this) as HwndSource).CompositionTarget.RenderMode = RenderMode.SoftwareOnly;
但是,您所看到的并不像驱动程序问题(它们通常被视为部分UI的撕裂或模糊)。元素的放置由CPU上运行的布局引擎处理,因此不受图形卡的影响。如果它在特定机器上一致地发生,则更可能是主题问题。如果不能始终如一地发生,您可能会遇到布局引擎错误,并且可以通过使用备用布局来解决问题。