2009-12-15 81 views
2

我开发了一个应用程序,在我的计算机上看起来不错,但是当我将其安装在具有不同分辨率和DPI设置的其他计算机上时,它看起来很糟糕。控制权重叠在一起,它只是悲惨。有没有人有任何建议如何避免这种情况?WPF DPI问题

+0

需要更多的信息我认为...例如,你如何在你的应用程序布局控件?你是否通过Canvas使用精确定位进行铺设? – Grokys 2009-12-15 20:52:32

+0

所有的UI都是在Expression Blend中创建的。他们都在网格控制之内。我应该重新使用这个来使用精确定位吗? – Joe 2009-12-15 20:54:07

回答

2

Windows无法知道屏幕的本地DPI(每英寸点数),因为屏幕无法将其告知计算机。这意味着很多人都会拥有DPI设置,这与他们的显示器原生DPI不一样。

那么,这怎么符合整个“WPF使用DIP(设备无关像素)” - 辩论?那么,对于WPF来计算DIP的大小,它需要1个信息和1个不变量:它需要知道您正在运行的分辨率(而不是问题),并且需要您将屏幕设置为其本地DPI。如果您的屏幕未设置为本地DPI,则与屏幕的物理尺寸相比,像素可能会大于或小于它们应该的值。

这是相当难以真正说明,看看这些博客文章: http://www.odewit.net/ArticleContent.aspx?id=WpfDpiScaling&lang=en&format=html http://blogs.microsoft.co.il/blogs/tomershamam/archive/2007/11/30/wpf-is-dpi-depended.aspx http://www.wpflearningexperience.com/?p=41(下现在:()

在一般情况下,你应该让你的用户界面可扩展性与东西像滚动条,寻呼控制和喜欢,以避免重叠:)

+0

谢谢。是的,重叠的控件不能用分页控件等来解决。我一定会查看文章。 :) – Joe 2009-12-15 21:26:14