我有一个显示图像的程序,用户可以在窗口中调整图像的大小(例如通过滚动鼠标滚轮)。我使用的RenderTransform缩放图像,像这样:调整大小/缩放比例时的失真WPF图像
<Image x:Name="CurrentImage">
<Image.RenderTransform>
<TransformGroup>
<TranslateTransform x:Name="Translate" X="0" Y="0"/>
<ScaleTransform x:Name="Scale" ScaleX="1" ScaleY="1"/>
</TransformGroup>
</Image.RenderTransform>
</Image>
然后,我只是改变了ScaleX
和ScaleY
性能。图像按预期调整大小。
但是,在某些尺度上,图像变得非常扭曲。低于约20%,高于约80%时显示效果良好,但对于其间的分辨率,部分或全部图像失真。见下面的截图。
一对夫妇的其他细节:
- 2的Windows XP的机器我想这对有同样的腐败,但Windows 7的笔记本电脑并没有表现出这个问题。
- 我也试过用
Height
和Width
属性替换RenderTransform
,只是缩放图像本身,但没有区别。 - 并不是所有的图像都有问题,而有些图像有时会在不同的比例因子下进行。较大的图像似乎更差,但我还没有系统地测量。
- .NET 3.5和.NET 4 RC都显示出这种行为。
有没有人见过这种行为之前,你有什么想法?
在原始大小的20%:
alt text http://maylark.com/Scale20.png
在原始大小的26%:
alt text http://maylark.com/Scale26.png
在原始大小的41%:
alt text http://maylark.com/Scale41.png
在原始大小的64%:
alt text http://maylark.com/Scale64.png
在80%原始尺寸的:
alt text http://maylark.com/Scale80.png
你能告诉我们你正在使用什么.NET框架。改变框架也有限制吗? – 2010-03-10 21:07:48
我正在.NET 3.5中工作,但刚刚尝试过.NET 4 RC,它没有什么区别。 – 2010-03-10 21:21:53