如何让绿色矩形只在蓝色矩形内可见?蓝色是网格的边界。我想切断不在这个网格内的所有东西。请注意,绿色矩形将移动。
答案 0 :(得分:4)
由于Silverlight中没有ClipToBounds
属性,因此您必须将Clip
属性设置为RectangleGeometry
。
当Grid的大小固定时,您可以简单地设置一个固定大小的矩形:
<Grid>
<Grid.Clip>
<RectangleGeometry Rect="0,0,400,600"/>
</Grid.Clip>
...
</Grid>
当Grid的大小可以更改时,您可以在Clip
处理程序中设置SizeChanged
属性:
<Grid SizeChanged="GridSizeChanged">
...
</Grid>
处理程序代码:
private void GridSizeChanged(object sender, SizeChangedEventArgs e)
{
((UIElement)sender).Clip =
new RectangleGeometry
{
Rect = new Rect(0, 0, e.NewSize.Width, e.NewSize.Height)
};
}
答案 1 :(得分:0)
<Grid Width="200" Height="100">
<Grid.Clip>
<RectangleGeometry Rect="0, 0, 200, 100"/>
</Grid.Clip>
来源:http://www.scottlogic.co.uk/blog/colin/2009/05/silverlight-cliptobounds-can-i-clip-it-yes-you-can/