CSDN-CSDN社区-.NET技术-.NET Framework

收藏 WPF中image控件显示的图片被拉伸,为什么?[问题点数:20,无满意答案结帖,结帖人:yanmo7]

  • yanmo7
  • (Yanmo7)
  • 等 级:
  • 结帖率:
楼主发表于:2008-04-14 19:08:35
xaml文件中关于Image控件的定义如下:
<Image Name="image1" Source="/PicViewer;component/introimage.bmp" HorizontalAlignment="Left" VerticalAlignment="Top" Stretch="None" />
这个Image放在一个ScrollViewer中,当载入的图片小于ScrollViewer时,显示正常,大于时图片被放大了。
主窗口的SnapToDevicePixels属性已被置true,Image的属性无论如何调整都是这样,怎样让图片显示成原大小?
回复次数:6
  • yanmo7用户头像
  • yanmo7
  • (Yanmo7)
  • 等 级:
#1楼 得分:0回复于:2008-04-15 10:49:48
没人回答?
我没说清楚吗?
正常图像大小是800*600,在WPF的Image里显示出来被拉伸大了,比如大概1000*800之类的,即不是原来的大小,被放大了,我并没有设置Image的拉伸属性(参见楼上Image的定义)。
#2楼 得分:0回复于:2008-04-15 11:24:03
试:改成固定大小再显示;Image.SaveAS(...)(像是)
#3楼 得分:0回复于:2008-04-15 11:24:17
楼主测一下:ActualHeight,及Height属性,
看是不是真的被放大了,还是感觉如此。
  • yanmo7用户头像
  • yanmo7
  • (Yanmo7)
  • 等 级:
#4楼 得分:0回复于:2008-04-15 16:41:03
确实被拉大了,图片尺寸为640*480,Image的ActualWidth和ActualHeight是853.xxxxxx和639.xxxxx。
不想改成固定大小,因为在运行时要显示不同的图片,Image的Width和Height都是Auto。
与SnapToDevicePixels有关系吗?我从主窗口一直到Image的每一级控件的SnapToDevicePixels都设成true也没效果。
  • yanmo7用户头像
  • yanmo7
  • (Yanmo7)
  • 等 级:
#5楼 得分:0回复于:2008-04-15 18:01:56
找到原因了,但解决不了.
是图片的DPI为72,而WPF的现实与设备无关,用系统的DPI来显示,系统为96DPI,这样72DPI的图像就显示被放大了。
在不改变原始图片DPI的情况下怎么显示呢?
知道了来说声啦。MSDN中searching...
#6楼 得分:0回复于:2008-05-01 05:01:34
接分是王道!
相关问题
怎么实现桌面3D旋转(WPF)-100分