6

基本上,我会说坐标是“基于像素的”。很容易理解 (10,10) 处的像素或 100 像素的宽度。

但是因为位置和大小是双格式的,所以你可以有一个 100.6 的大小和一个在 (10.1,50.9) 的位置。十进制值对位置/大小有影响吗?

事实上,我通过计算点来生成自定义路径。有些点几乎相等,例如 1.9999999 和 2.000000。起初,我想对所有点进行四舍五入,但我确信 xaml 中的影响(1.99 和 2.00,是同一点吗?)。

4

2 回答 2

8

不,WPF 位置和大小不是基于像素的,而是基于“单位”的。

事实上,当您的屏幕设置为 96 dpi 时,1 个单位等于 1 个像素。但是,例如,如果您将屏幕设置为 120 dpi,则 1 个单位将等于 1.25 像素。

直接的好处是,您的应用程序将比 Windows 窗体应用程序更容易适应更高比例的分辨率。

引用FrameworkElement.Height 属性

该值被解释为与设备无关的单位(1/96 英寸)测量值。

最后,我建议您对值进行四舍五入。不是出于技术原因,而是为了使 XAML 标记更具可读性和“自然”。

于 2013-01-07T08:45:07.273 回答
6

WPF 使用矢量图形。有关详细信息,请参阅视觉渲染行为中的矢量图形部分。矢量图形的一大优势是绘图(例如您的路径)可以轻松缩放而不会像素化。

如果计算的点值直接放入路径几何图形中,则对路径的点进行四舍五入没有多大意义。坐标相对于 Path 对象的原点,并且 Path(或其祖先之一,例如 Canvas)本身可能位于分数像素位置。

如果将点值写入 XAML,我同意 Steve 的观点,即舍入会使 XAML 更好,并且您不会意识到 1.99 和 2 之间有任何区别。

于 2013-01-07T08:47:57.860 回答