2014-12-03 73 views
1

我的XAML中有一个图像元素,我不想指定其尺寸,因为我希望它根据分辨率进行缩放的显示尺寸。如何在不知道XAML尺寸的情况下以圆形方式裁剪图像

我需要在一个圆圈中剪切图像,我怎么能没有明确说明它的尺寸?

+0

[创建圆形图像Xaml]的可能的重复(http://stackoverflow.com/questions/23138878/create-circular-image-xaml) – 2014-12-03 14:31:49

回答

1

我解释你的问题,你想做一个圆形图像,填充父容器。使用椭圆形以Stretch="Uniform"创建一个圆,然后设置Fill到图像,其被放置在Grid内部例如它将填补它的父,例如:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 
    <Ellipse Stretch="Uniform"> 
     <Ellipse.Fill> 
      <ImageBrush ImageSource="/Assets/avatarpic-l.png" /> 
     </Ellipse.Fill> 
    </Ellipse> 
</Grid> 

这将给出以下结果:

enter image description here

还有产生使用OpacityMask相同的结果的另一种方法(通过改变Offset参数还可以得到一些很好的褪色效果):

<Image Source="/Assets/avatarpic-l.png"> 
    <Image.OpacityMask> 
     <RadialGradientBrush GradientOrigin="0.5,0.5" Center="0.5,0.5" RadiusX="0.5" RadiusY="0.5"> 
      <GradientStop Color="#ffffffff" Offset="1.0" /> 
      <GradientStop Color="#00ffffff" Offset="1.0" /> 
     </RadialGradientBrush> 
    </Image.OpacityMask> 
</Image> 

如果您设置<Image Source="/Assets/avatarpic-l.png" Stretch="None" >...</Image>,您可以使用第二种方法来保持其原始尺寸。