微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐