在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
问题: 如何发现问题的: 思路:想办法将DPI从96修改回设计的72。 WPF的Image控件显示图片时,控件要求的Source赋值类型为ImageSource,该类型及其子类都可以用于给Image控件设置图片,继承关系:
即使用以上三种的任一类型都可以给Image控件赋值图源。选择根据实际需求,因为还要考虑到类型间的转换。 想通过代码动态修改每张图片的DPI,发现BitmapImage类身上与DPI相关的属性基本上都是只读的。而Bitmap类身上的HorizontalResolution和VerticalResolution属性是只读的,但有一个SetResolution()方法。可以使用该方法修改Resolution了。 还有一种比较另类的方法。BitmapImage身上DecodePixelWidth和DecodePixelHeight可读可写,而且该属性也会影响到图像显示的真实宽高。那么可以在不改变DPI的情况下,改变这两个属性来实现图像的缩放。代码如下:
小结:修改DPI或Resolution最终都可以修改图像的真实显示大小。 本文仅是记录一下WPF有这么一个默认图像DPI是96的坑。 |
请发表评论