当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《UIElement.ClipToBounds在WPF中,但不在Silverlight中.如何在Silverlight中进行模拟?》经验,为你挑选了1个好方法。

我在WPF中有一个Canvas,我想阻止它的孩子被画在Canvas ara的边缘之外.在WPF中,这很简单,因为您只需将Canvas上的ClipToBounds属性设置为True,它就会按预期执行.

将示例XAML移植到Silverlight存在一个问题,因为ClipToBounds不存在!有没有办法模拟这个功能?我很高兴从Canvas派生并在需要时覆盖Measure/Arrange方法.



1> Phil Wright..:

我自己找到了解决方案.像这样覆盖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();
}

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有