我有一個顯示圖像的程序,用戶可以在窗口中調整圖像的大小(例如通過滾動鼠標滾輪)。我使用的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