我在
WPF中有
一个Canvas,我想阻止它的孩子被画在Canvas
ara的边缘之外.在WPF中,这很简单,因为您只需将Canvas上的ClipToBounds
属性设置为True,它就会按预期执行.
将示例XAML移植到Silverlight存在一个问题,因为ClipToBounds不存在!有没有办法模拟这个功能?我很高兴从Canvas派生并在需要时覆盖Measure / Arrange方法.
我自己找到了
解决方案.像这样覆盖ArrangeOverride
方法……
protected override Size ArrangeOverride(Size finalSize)
{
RectangleGeometry clipRectGeometry = new RectangleGeometry();
clipRectGeometry.Rect = new Rect(new Point(0,0),finalSize);
Clip = clipRectGeometry;
return base.ArrangeOverride();
}