WPF中如何获取打印机的DPI
我有一个带有自定义控件的 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您正在寻找 PrintTicket.PageResolution
http://msdn。 microsoft.com/en-us/library/system.printing.printticket.pageresolution.aspx
you are looking for PrintTicket.PageResolution
http://msdn.microsoft.com/en-us/library/system.printing.printticket.pageresolution.aspx