您可以通过将图像的 RenderTransform 属性设置为 ScaleTransform 来放大图像:
private void Image_Tapped(object sender, TappedRoutedEventArgs e)
{
Image image = sender as Image;
image.RenderTransform = new ScaleTransform() { ScaleX = 2, ScaleY = 2 };
}
<Image Source="ms-appx:///Assets/pic.png" Tapped="Image_Tapped" Stretch="None" />
ScaleX 和 ScaleY 属性获取或设置缩放因子。更多信息请参考 MSDN 文档:https://msdn.microsoft.com/library/windows/apps/br242940?f=255&MSPPError=-2147217396
看起来不错,但是有问题。当我添加更多图像时,例如添加到 GridView 中,它们会重叠并突出显示。图像可以重叠,但我点击的图像应该始终位于顶部...
您可以将点击的图像放在弹出窗口中,然后在再次点击时将其添加回原来的面板。我整理了一个示例,该示例应该可以为您提供想法和可以借鉴的东西:
private void Image_Tapped(object sender, TappedRoutedEventArgs e)
{
Image image = sender as Image;
Panel parent = image.Parent as Panel;
if (parent != null)
{
image.RenderTransform = new ScaleTransform() { ScaleX = 2, ScaleY = 2 };
parent.Children.Remove(image);
parent.Children.Add(new Popup() { Child = image, IsOpen = true, Tag = parent });
}
else
{
Popup popup = image.Parent as Popup;
popup.Child = null;
Panel panel = popup.Tag as Panel;
image.RenderTransform = null;
panel.Children.Add(image);
}
}
<GridView SelectionMode="None" isItemClickEnabled="True">
<GridView.ItemTemplate>
<DataTemplate>
<Grid>
<Image Source="ms-appx:///Assets/pic.png" Tapped="Image_Tapped" Stretch="None" />
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>