UIElement.ClipToBounds在WPF中,但不在Silverlight中.如何在Silverlight中进行模拟?

我在 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();
}

相关文章

如何在Silverlight4(XAML)中绑定IsEnabled属性?我试过简单的...
我正在编写我的第一个vb.net应用程序(但我也会在这里标记c#,...
ProcessFile()是在UIThread上运行还是在单独的线程上运行.如...
我从同行那里听说,对sharepoint的了解对职业生涯有益.我们不...
我正在尝试保存一个类我的类对象的集合.我收到一个错误说明:...
我需要根据Silverlight中的某些配置值设置给定控件的Style.我...