在Silverlight中Image对象的Stretch属性可以控制图片在容器中的伸展方式,便于使用我们不同的需求。Stretch属性是枚举类型,每个对象对应一种伸展方式。下面让我们来看看Stretch的属性成员吧!
<Grid x:Name="LayoutRoot" Background="White">
<Grid.ColumnDeFinitions>
<ColumnDeFinition/>
<ColumnDeFinition/>
</Grid.ColumnDeFinitions>
<Grid.RowDeFinitions>
<RowDeFinition/>
<RowDeFinition/>
</Grid.RowDeFinitions>
<Image Source="A5.jpg" Grid.Column="0" Grid.Row="0" Stretch="None" Width="200" Height="200" Margin="64,16,56,24"/>
<Image Source="A5.jpg" Grid.Column="1" Grid.Row="0" Stretch="Fill" Width="200" Height="200" Margin="64,24"/>
<Image Source="A5.jpg" Grid.Column="0" Grid.Row="1" Stretch="Uniform" Width="200" Height="200" Margin="64,24"/>
<Image Source="A5.jpg" Grid.Column="1" Grid.Row="1" Stretch="UniformToFill" Width="200" Height="200" Margin="64,24"/>
</Grid>
效果如图:
我们可以很清楚看到第1个Image对象的Stretch属性值为None;第2个Image对象的Stretch属性值为Fill;第3个Image对象的Stretch属性值为Uniform;第4个Image对象的Stretch属性值为UniformToFill。
<StackPanel Background="White" Orientation="Horizontal">
<Image Source="A5.jpg" Width="300" Height="200">
<Image.Clip>
<
EllipseGeometry
Center
="100,100" RadiusX="60" RadiusY="60"/>
</Image.Clip>
</Image>
<Image Source="A5.jpg" Width="300" Height="200">
<Image.Clip>
<PathGeometry>
<Pathfigure StartPoint="0,200" IsClosed="True">
</Pathfigure>
</PathGeometry>
</Image.Clip>
</Image>
</StackPanel>
效果如图:
在Silverlight中我们可以使用Image对象的OpacityMask属性制作不透明蒙版。这里我们需要注意的是OpacityMask属性值必须支持alpha通道的任意Brush对象。如果属性设置为非alpha通道值(比如说红色,绿色,蓝色),那么蒙版就会被忽略。
代码如下:
<Grid Background="AliceBlue">
<Grid.ColumnDeFinitions>
<ColumnDeFinition/>
<ColumnDeFinition/>
</Grid.ColumnDeFinitions>
<Grid.RowDeFinitions>
<RowDeFinition/>
<RowDeFinition/>
</Grid.RowDeFinitions>
<Image Source="A5.jpg" Width="200" Height="150" Grid.Column="0" Grid.Row="0">
<Image.OpacityMask>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
<GradientStop Color="#00000000" Offset="0"/>
<GradientStop Color="#EE000000" Offset="0.8"/>
<GradientStop Color="#FF000000" Offset="1"/>
</LinearGradientBrush>
</Image.OpacityMask>
</Image>
<Image Source="A5.jpg" Width="200" Height="150" Grid.Column="1" Grid.Row="0">
<Image.OpacityMask>
<RadialGradientBrush>
<GradientStop Color="#00000000" Offset="0"/>
<GradientStop Color="#EE000000" Offset="0.8"/>
<GradientStop Color="#FF000000" Offset="1"/>
</RadialGradientBrush>
</Image.OpacityMask>
</Image>
<Image Source="A5.jpg" Width="200" Height="150" Grid.Column="0" Grid.Row="1">
<Image.OpacityMask>
<SolidColorBrush Color="#77000000"/>
</Image.OpacityMask>
</Image>
<Image Source="A5.jpg" Width="200" Height="150" Grid.Column="1" Grid.Row="1">
<Image.OpacityMask>
<SolidColorBrush Color="Red"/>
</Image.OpacityMask>
</Image>
</Grid>
效果如图:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。