WPF中如何获取打印机的DPI

发布于 2024-10-10 07:39:24 字数 498 浏览 1 评论 0原文

我有一个带有自定义控件的 WPF 应用程序。自定义控件将自身呈现为位图,我可以使用以下代码来确定要使用的分辨率,以便位图与显示分辨率相匹配。

        PresentationSource ps = PresentationSource.FromVisual(this);
        if (ps != null)
        {
            pixelsPerLogicalUnitX = ps.CompositionTarget.TransformToDevice.M11;
            pixelsPerLogicalUnitY = ps.CompositionTarget.TransformToDevice.M22;
        }

不幸的是,当我通过 PrintDialog 将此控件发送到打印机时,PresentationSource 为空,因此我不知道 DPI。

有没有办法获取打印机的 DPI (或 PresenterSource )?

I have a WPF application with a custom control. The custom control renders itself to a bitmap and I am able to use the following code to figure out what resolution to use so that the bitmap matches the display resolution.

        PresentationSource ps = PresentationSource.FromVisual(this);
        if (ps != null)
        {
            pixelsPerLogicalUnitX = ps.CompositionTarget.TransformToDevice.M11;
            pixelsPerLogicalUnitY = ps.CompositionTarget.TransformToDevice.M22;
        }

Unfortunately, when I send this control to the printer through a PrintDialog, the PresentationSource is null so I don't know the DPI.

Is there a way to get the DPI ( or a PresentationSource ) for the printer?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文