我可以指定边框在里面吗

本文关键字:在里面 边框 我可以 | 更新日期: 2023-09-27 18:13:16

我使用System.Windows.Shapes.Path定义了一个六边形,但通过将Stroke应用于它(SolidColorBrush),边界将向内外移动。

我怎样才能使描边只应用于Path的内部?

我可以指定边框在里面吗

你需要使用Clip依赖属性:这个想法是通过它自己的几何形状来剪辑路径,就像这样。

<Path ... Clip="{Binding Data, RelativeSource={RelativeSource Self}}"/>

你必须加倍的描边厚度,因为只有一半的描边是可见的。

即使它在silverlight和WPF中工作得很好,我在过去使用这个代码时遇到了一些问题(将Clip绑定到相对源);我通过添加另一个绑定或简单地在代码中分配Clip来轻松解决这个问题。

编辑:还要注意的是,对于剪切,pathGeometry应该被填充。

被裁剪的区域是几何体的"外部"。换句话说,显示(未剪切)的内容是所显示的几何图形的面积如果几何图形被用作数据,将会有一个填充路径而不是用于裁剪。被剪切的区域是任何落下的区域在几何叠加之外。对于复杂的几何图形,面积被裁剪或未被裁剪受到几何体的FillRule的影响。