1

我有一个 WPF 应用程序,它不关心设备 DPI,而是自动缩放以填充屏幕(但保持其纵横比)。

我通过更改最外层 WPF 容器的变换的 ScaleX 和 ScaleY 属性来缩放它。

在这种情况下,我是否仍然需要获取显示器的 DPI 或者我可以在 FormattedText 的函数调用中使用“1.0”作为“pixelsPerDip”吗?

我问的原因是,我试图从我的代码中删除所有警告,我收到一个警告,没有“pixelsPerDip”的覆盖已经过时。

4

1 回答 1

1

我遇到了同样的问题。你可以得到DpiScale这样的:

var dpiInfo = VisualTreeHelper.GetDpi(visual);

在这种情况下,您可以将根元素作为视觉对象传递。

现在您可以调用FormattedText等,并传入dpiInfo.PixelsPerDip

我希望这有帮助。

于 2019-10-11T15:15:13.830 回答