C# 我可以指定边框在里面吗?

C# 我可以指定边框在里面吗?,c#,windows-phone-7,C#,Windows Phone 7,我使用System.Windows.Shapes.Path定义了一个六边形,但通过对其应用Stroke(SolidColorBrush)边框可以从内到外 如何使笔划仅应用于路径的内部?您需要使用dependency属性:其思想是通过路径自身的几何体剪裁路径,如下图所示 <Path ... Clip="{Binding Data, RelativeSource={RelativeSource Self}}"/> 您必须将笔划的厚度加倍,因为只有一半笔划可见 即使它在silverl

我使用
System.Windows.Shapes.Path
定义了一个六边形,但通过对其应用
Stroke
SolidColorBrush
)边框可以从内到外

如何使笔划仅应用于路径的内部?

您需要使用dependency属性:其思想是通过路径自身的几何体剪裁路径,如下图所示

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

您必须将笔划的厚度加倍,因为只有一半笔划可见

即使它在silverlight和WPF中工作得很好,我在过去的代码中也遇到了一些问题(将剪辑绑定到相对源代码);我通过添加另一个绑定或者简单地在代码中分配Clip,很容易地解决了这个问题

编辑:
还请注意,对于剪裁,应填充pathGeometry

剪裁区域是几何图形的“外部”。换句话说 显示(未剪裁)的内容是几何图形的区域 如果几何图形用作图形的数据,则会有填充 路径,而不是用于剪裁。剪裁区域是任何落下的区域 在几何体覆盖之外。对于复杂的几何图形,以下区域 是否剪裁受几何体的填充规则影响


我尝试过:path.Data=pathGeometry;path.Clip=pathGeometry;(添加此项)但它声明ArgumentException:-(对于剪裁,应填充pathGeometry