Xaml,wpf图像位置和裁剪问题

时间:2014-02-21 10:30:07

标签: wpf xaml windows-runtime crop resize-crop

我有600px宽度和600px高度的图像。我们有三种尺寸的圆圈。所有人都有中间位置。有些人将反射作为阴影。我想裁剪图像用于显示目的。 largest circle

因此,如上所示的最大圆圈的直径约为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"/>

我可以更改图像的属性,使其不显示此屏幕截图的红色部分: enter image description here 顺便说一句,我没有显示原始大小的图像(正如你在xaml代码中看到的那样)我将宽度设置为200.它只是一个显示器,我不必存储新图像。我想动态地做,最好通过在xaml中设置图像属性。 (适用于所有三种尺寸的圆圈)

使用CroppedBitmap最好的方法吗? http://msdn.microsoft.com/en-us/library/ms752345.aspx顺便说一句,它适用于Windows rt。

1 个答案:

答案 0 :(得分:6)

一种选择是使用clipping mask

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

rect structure取你必须根据图像设置的X,Y,宽度和高度值。