我正在尝试用网格控件中的圆圈剪切4:3图像。
我需要圆形剪辑以完美的圆圈从中间显示图像。见下文。
alt text http://www.cse.unsw.edu.au/~vjro855/Untitled.png
圆圈应根据图像动态调整大小。
我尝试过Canvas.Clip和Ellipse + VisualBrush而没有达到正确的行为。
谢谢!
答案 0 :(得分:3)
解决了我的问题。
解决方案是将转换器用作Grid.Clip
属性的一部分。我使用了以下网站的代码。
http://blogorama.nerdworks.in/entry-CenteringelementsonacanvasinWP.aspx
我遇到的挑战是必须使用EllipseGeometry
而不是Ellipse
。
Ellipse
使用height
和width
,EllipseGeometry
使用radiusx,y
和center
。
使用Ellipse
我可以将高度和宽度设置为图像的高度,以获得我需要的剪辑。
如果表达式使用绑定,那将会更简单。 {Binding Path=expr}
<Grid>
<Grid.Clip>
<EllipseGeometry>
<EllipseGeometry.RadiusX>
<MultiBinding
Converter="{StaticResource HalfValue1}">
<Binding
ElementName="vemap"
Path="ActualHeight" />
</MultiBinding>
</EllipseGeometry.RadiusX>
<EllipseGeometry.RadiusY>
<MultiBinding
Converter="{StaticResource HalfValue1}">
<Binding
ElementName="vemap"
Path="ActualHeight" />
</MultiBinding>
</EllipseGeometry.RadiusY>
<EllipseGeometry.Center>
<MultiBinding
Converter="{StaticResource HalfValue}">
<Binding
ElementName="vemap"
Path="ActualHeight" />
<Binding
ElementName="vemap"
Path="ActualWidth" />
</MultiBinding>
</EllipseGeometry.Center>
</EllipseGeometry>
</Grid.Clip>
<Image>
</Grid>