我有一个WPF应用程序,它不关心设备DPI,而是自动缩放以填充屏幕(但保持其宽高比)。
我通过更改最外部WPF容器的转换的ScaleX和ScaleY属性来缩放它。
在这种情况下,我还是必须获取监视器的DPI还是可以在FormattedText函数调用中仅将“ 1.0”用作“ pixelsPerDip”?
我问的原因是,我尝试从代码中删除所有警告,并得到警告,没有“ pixelsPerDip”的覆盖已过时。
答案 0 :(得分:0)
我遇到了同样的问题。您可以这样获得DpiScale
:
var dpiInfo = VisualTreeHelper.GetDpi(visual);
在这种情况下,您可以将根元素作为视觉元素传递。
现在您可以呼叫FormattedText
等,并传递dpiInfo.PixelsPerDip
。
我希望这会有所帮助。