不知何时开始,大多数软件的头像采用了圆形头像,使用WPF进行圆形头像显示比较简单,并不是将图像裁剪成圆形头像后显示.
思路是裁剪出一个正方形的头像,然后在显示的时候,只显示正方形中的内切圆部分即可.WPF中的Image类中有一个Clip属性,只需要设置好该属性即可.生成后的效果如下所示:
关键代码如下:
<Window x:Class="WPFTest01.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525"
xmlns:converter="clr-namespace:WPFTest01.Converters">
<Window.Resources>
<converter:PathToImageConverterLeft x:Key="leftImageConverter"/>
<GeometryGroup x:Key="clipGeometry" FillRule="Nonzero">
<EllipseGeometry RadiusX="90" RadiusY="90" Center="90, 90"></EllipseGeometry>
</GeometryGroup>
</Window.Resources>
<Grid>
<Image Source="{Binding LeftPicture, Converter={StaticResource ResourceKey=leftImageConverter}}"
Height="180" HorizontalAlignment="Center" VerticalAlignment="Center"
Name="image1"
Stretch="Fill"
Width="180"
Clip="{StaticResource ResourceKey=clipGeometry}"/>
<Ellipse
HorizontalAlignment="Center"
Width="180"
Height="180"
Stroke="White"
VerticalAlignment="Center"
StrokeThickness="2"
>
</Ellipse>
</Grid>
</Window>
详细sample代码上传到此了:
http://download.csdn.net/detail/u013376417/8409949