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

Mar*_* Gu 7 wpf user-controls drawing wpf-controls

这是我的意思的示例图像:示例

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

  • 为什么会这样?
  • 怎么可以避免?

Mar*_* Gu 15

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

<object ClipToBounds="True" />
Run Code Online (Sandbox Code Playgroud)

有关MSDN的更多详细信息.


Phi*_*ilB 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>
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请访问http://msdn.microsoft.com/en-us/library/cc189065%28v=VS.95%29.aspx.