2

我试图在 a 中画一些东西,System.Windows.Media.DrawingVisual但我需要以毫米为单位画薄。我怎样才能做到这一点?

4

1 回答 1

1

在 WPF 中,您甚至不能在没有额外努力的情况下以像素为单位绘制一些东西。WPF 使用“设备独立单位”,其中每个单位为 1/96 英寸。即使这只是理论上的关系,因为它取决于显示设备正确报告其分辨率,而这又取决于显示器、其配置以及用户在“大字体”设置中设置的内容(即在屏幕分辨率设置,单击“使文本和其他项目变大或变小”的链接)。

所有这些都会影响 WPF 对可用显示分辨率信息的解释,进而影响 WPF 如何选择呈现其“与设备无关”的 1/96 英寸单位。

最重要的是,Sheridan 提供的链接评论者确实是您可以以毫米为单位显示的最接近的链接,除非用户进行大量额外工作和帮助。通过按factor提供的值缩放您的输入单位(以毫米为单位)(即96/ 25.4……在表达式中,您可以看到25.4将毫米转换为英寸,然后96将英寸转换为 1/96 英寸),您可以转换您的毫米到 WPF 本机使用的 96 dpi 单位。

假设显示器配置正确(一个乐观的假设,但确实发生了:)),这将根据您所需的基于毫米的尺寸在屏幕上产生相当准确的显示。


请注意,您可以通过在渲染的 UI 元素上使用转换来完成此缩放。最简单的做法是设置LayoutTransform最外层容器对象的属性,您希望在其中进行基于毫米的渲染。然后,您可以使用毫米值作为其位置和大小在该容器中布置您的对象,WPF 将使用转换以您想要的比例呈现容器和渲染的对象。

于 2015-06-15T17:19:59.660 回答