Почему элемент управления может рисовать за пределами своей ограничительной рамки? - PullRequest
7 голосов
/ 16 сентября 2010

Вот пример изображения того, что я имею в виду: пример

Серый прямоугольник - это ограничительная рамка элемента управления, который рисует синие линии и точки в методе OnRender(...) Красные овалы отмечают места, где это происходит.

  • Почему это возможно?
  • Как этого избежать?

Ответы [ 2 ]

15 голосов
/ 16 сентября 2010

Вот идеальный ответ на мой второй вопрос, по крайней мере, при использовании элемента управления прямоугольной формы:

<object ClipToBounds="True" />

Подробнее о MSDN .

5 голосов
/ 16 сентября 2010

https://msdn.microsoft.com/en-us/library/ms750441(v=vs.100).aspx содержит подробную информацию об архитектурном проекте WPF, чтобы ответить, почему это возможно.

Чтобы избежать этого, вы хотите использовать свойство clip вашего элемента.

 <Rectangle Fill="Yellow" Height="100" Width="200" StrokeThickness="2" Stroke="Black">
   <Rectangle.Clip>
     <EllipseGeometry Center="200,100" RadiusX="50" RadiusY="50" />
   </Rectangle.Clip>
 </Rectangle>

Проверьте http://msdn.microsoft.com/en-us/library/cc189065%28v=VS.95%29.aspx для получения более подробной информации.

...