0

屏幕1

如何使绿色矩形仅在蓝色矩形内可见?蓝色是网格的边界。我想切断不在此网格内的所有内容。请注意,绿色矩形将移动。

4

2 回答 2

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)
        };
}
于 2013-02-24T12:52:06.250 回答
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/

于 2013-02-24T14:23:02.790 回答