3

我有 600 像素宽度和 600 像素高度的图像。我们有三种大小的圆圈。所有的中心都在中间。有些人在它下面有反射作为阴影。我想裁剪图像以供显示。 最大的圆圈

所以上图最大的圆的直径大约是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。

4

1 回答 1

9

一种选择是使用剪贴蒙版

<Image Source="MyImage.jpg">
    <Image.Clip>
        <RectangleGeometry Rect="10,10,80,80"></RectangleGeometry>
    </Image.Clip>
</Image>

rect 结构采用您必须根据图像设置的 X、Y、宽度和高度值。

于 2014-02-21T10:51:29.560 回答