我有600px宽度和600px高度的图像。我们有三种尺寸的圆圈。所有人都有中间位置。有些人将反射作为阴影。我想裁剪图像用于显示目的。
因此,如上所示的最大圆圈的直径约为500像素,但中小型圆圈的直径较小。我在代码中知道对象类型Product
的大小。由于尺寸差异,我必须以不同的方式放置它们并使用三个占位符图像,如下所示:
<Image x:Name="imgCoinHolderSmall"
HorizontalAlignment="Center"
Margin="0,495,0,0"
VerticalAlignment="Top"
Stretch="Fill"
Width="200"
Height="200"/>
<Image x:Name="imgCoinHolderMedium"
HorizontalAlignment="Center"
Margin="0,510,0,0"
VerticalAlignment="Top"
Stretch="Fill"
Width="200"
Height="200"/>
<Image x:Name="imgCoinHolderLarge"
HorizontalAlignment="Center"
Margin="0,520,0,0"
VerticalAlignment="Top"
Stretch="Fill"
Width="200"
Height="200"/>
我可以更改图像的属性,使其不显示此屏幕截图的红色部分: 顺便说一句,我没有显示原始大小的图像(正如你在xaml代码中看到的那样)我将宽度设置为200.它只是一个显示器,我不必存储新图像。我想动态地做,最好通过在xaml中设置图像属性。 (适用于所有三种尺寸的圆圈)
使用CroppedBitmap
最好的方法吗? http://msdn.microsoft.com/en-us/library/ms752345.aspx顺便说一句,它适用于Windows rt。
答案 0 :(得分:6)
一种选择是使用clipping mask:
<Image Source="MyImage.jpg">
<Image.Clip>
<RectangleGeometry Rect="10,10,80,80"></RectangleGeometry>
</Image.Clip>
</Image>
rect structure取你必须根据图像设置的X,Y,宽度和高度值。