我试图在我的 Windows Phone 7 应用程序中的 ScrollViewer 中有一个缩放的图像。在应用程序页面上,我定义了这样的控件:
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" Name="ImageScroller" HorizontalAlignment="Center" VerticalAlignment="Center">
<layout:LayoutTransformer x:Name="LayoutTransformer">
<layout:LayoutTransformer.LayoutTransform>
<ScaleTransform x:Name="ImageScale"/>
</layout:LayoutTransformer.LayoutTransform>
<Image x:Name="Image" Margin="4" Source="{Binding ImageSource}" />
</layout:LayoutTransformer>
</ScrollViewer>
LayoutTransformer 类来自 Silverlight 扩展项目。
我有处理 ZoomIn 和 ZoomOut 事件的方法,我在那里执行以下操作:
private void ApplicationBarIconButton_Click_1(object sender, EventArgs e)
{
// Zoom In
ImageScale.ScaleX = ImageScale.ScaleY = ImageScale.ScaleX + 0.5;
LayoutTransformer.ApplyLayoutTransform();
ImageScroller.InvalidateMeasure();
}
但是,当我放大并更改图像时,ScrollView 控件在图像的底部和右侧有空白区域。几乎就像在缩放变换之前使用原始图像的大小对图像进行了缩放但裁剪一样。
任何想法我做错了什么?
我还创建了一个重现此问题的项目:http: //dl.dropbox.com/u/2598447/ZoomTest.WP7.zip