gpt4 book ai didi

c# - 如何在 DrawingVisual 中以毫米为单位而不是以像素为单位绘制内容?

转载 作者:太空宇宙 更新时间:2023-11-03 13:05:47 25 4
gpt4 key购买 nike

我正在尝试在 System.Windows.Media.DrawingVisual 中绘制一些东西,但我需要以毫米为单位绘制薄片。我该怎么做?

最佳答案

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

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

最重要的是,Sheridan 提供的链接评论器确实是最接近以毫米为单位显示的,除非有很多额外的工作和来自用户的帮助。通过按提供的 factor 值(即 96/25.4 ……在表达式中,您可以看到 25.4 从毫米转换为英寸,然后 96 将英寸转换为 1/96 英寸),您可以将毫米转换为 WPF native 使用的 96 dpi 单位。

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


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

关于c# - 如何在 DrawingVisual 中以毫米为单位而不是以像素为单位绘制内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30848336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com