UIElement.ClipToBounds находится в WPF, но не в Silverlight. Как смоделировать в Silverlight? - PullRequest
4 голосов
/ 28 марта 2009

У меня есть холст в WPF, и я хочу, чтобы его дочерние элементы не отображались за пределами области холста. В WPF это просто, поскольку вы просто устанавливаете свойство ClipToBounds на Canvas в True, и это происходит, как и ожидалось.

При портировании примера XAML в Silverlight существует проблема, поскольку ClipToBounds не существует! Есть ли способ симулировать эту функциональность? Я рад, что унаследовал от Canvas и при необходимости переопределил методы Measure / Arrange.

1 Ответ

7 голосов
/ 29 марта 2009

Я нашел решение сам. Переопределите метод 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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...