2013-04-11 42 views
4

默认情况下,在WPF/WinRT XAML中将Stroke添加到Shape会创建一个以边缘为中心的轮廓,这意味着轮廓的一半位于形状之外。但是我需要创建一个具有笔画和无填充的形状,它与具有填充和无笔画的形状具有相同的轮廓。有没有简单的方法来改变笔画,使整个轮廓在里面?具有内部笔划的形状

我可以创建一个遮盖反转形状的OpacityMask,但在WinRT XAML中不支持OpacityMasks。我也可以通过向内的多边形缓冲创建一个更小的形状(An algorithm for inflating/deflating (offsetting, buffering) polygons),但我希望有一个更简单的解决方案,例如一个简单的属性来改变笔画“内部”。

+1

如[此处](http://stackoverflow.com/a/10594612/1136211)所示,设置'Clip'属性而不是'OpacityMask'会更简单,但不幸的是,这在WinRT中也不起作用,因为'Clip'只能是'RectangleGeometry'。 – Clemens 2013-04-11 22:46:43

+0

@Sebastian Negraszus我有同样的问题。任何更新? – AbinZZ 2013-05-09 05:51:53

+0

@Abin:没有更新。我不再在这个问题上工作。 – 2013-05-09 12:39:22

回答

1

我真的一直在想出这个问题的答案。一遍又一遍地尝试有一些类型的限制。恐怕答案是,你不能这样做 - 至少不能与动态载体相关。您始终可以创建一个图像来模拟它。但这很糟糕。