为什么控件可以在其边界框之外绘制?

时间:2010-09-15 22:21:22

标签: wpf user-controls wpf-controls drawing

以下是我的意思的示例图片:example

灰色矩形是控件的边界框,用于在其OnRender(...)方法中绘制蓝线和点。红色椭圆标记出现在哪里。

  • 为什么会这样?
  • 如何避免?

2 个答案:

答案 0 :(得分:15)

这是我第二个问题的完美答案,至少在使用矩形控件时:

<object ClipToBounds="True" />

有关MSDN的详细信息。

答案 1 :(得分:5)

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了解详情。