none
WPF 打印 尺寸问题 RRS feed

  • 问题

  • 遇到一个问题.

    我截取了屏幕使其变成了1920*1080的bitmapsource

    然后使用DrawingVisual和DrawContext使其变成了可以被打印的Visual

    然后设置PrintTicket横向打印

    但是PrintDialog的 PrintableAreaWidth和PrintableAreaHeight并没有这么大,比如只有1122*795,然后我的图就被压缩了,甚至有的地方没有显示.我想要的效果就是和在桌面打开一张图,然后直接打印的效果一样.在纸张的中间,等比缩放,不知道这个如何解决,

    求解,谢谢

    我又试了一下,我将一张图片放在Image中,然后直接打印Image上下左右都有一块没显示出来.


    与我交流:点击这里给我发消息



    2012年9月4日 14:09

答案

  • 你可以先获取打印的大小,然后重新Measure() Arrange()你的那个Image就可以了。


    Sheldon _Xiao[MSFT]
    MSDN Community Support | Feedback to us
    Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2012年9月6日 9:00
    版主
  • 你好,

    我建议你可以先自定义一个继承自UIElement的类, 重载OnRender方法绘制这个DrawingVisual。

    这样,你可以通过Measure/Arrange控制UIElement, 而UIElement可以控制bitmap的绘制。

    暂时没有时间仔细研究有没有更好的方法,有问题的话可以告诉我。


    Min Zhu [MSFT]
    MSDN Community Support | Feedback to us

    2012年10月9日 9:28
    版主

全部回复

  • 你可以先获取打印的大小,然后重新Measure() Arrange()你的那个Image就可以了。


    Sheldon _Xiao[MSFT]
    MSDN Community Support | Feedback to us
    Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2012年9月6日 9:00
    版主
  • 我那个不是image 我那个是bitmapsource 不能重新布局

    与我交流:点击这里给我发消息

    2012年9月7日 11:45
  • 你好,

    我建议你可以先自定义一个继承自UIElement的类, 重载OnRender方法绘制这个DrawingVisual。

    这样,你可以通过Measure/Arrange控制UIElement, 而UIElement可以控制bitmap的绘制。

    暂时没有时间仔细研究有没有更好的方法,有问题的话可以告诉我。


    Min Zhu [MSFT]
    MSDN Community Support | Feedback to us

    2012年10月9日 9:28
    版主
  • 好的,谢谢,我试一下

    与我交流:点击这里给我发消息

    2012年10月21日 7:11