Wpf 如何使路径对象停止剪切到其边界?

Wpf 如何使路径对象停止剪切到其边界?,wpf,xaml,Wpf,Xaml,希望我错过了一些简单的东西。我正在尝试使用XAML中的路径形状绘制箭头几何体。然而,由于我的一些线条直接到边界框的边缘,加上它有一个粗笔划(在这个演示中变粗了),它们被剪裁了 我尝试将ClipToBounds设置为false,但没有任何效果 下面是相关的XAML。我添加了颜色和边距来显示它的功能 下面是结果 那么,如何停止剪裁路径形状?我生成此显示的方法是使用容器(在您的情况下是边框)来控制图形的大小,然后使用拉伸=“填充”定义路径,以使用尽可能多的可用空间。这样,您就可以使用路径自己的标

希望我错过了一些简单的东西。我正在尝试使用XAML中的
路径
形状绘制箭头几何体。然而,由于我的一些线条直接到边界框的边缘,加上它有一个粗笔划(在这个演示中变粗了),它们被剪裁了

我尝试将
ClipToBounds
设置为false,但没有任何效果

下面是相关的XAML。我添加了颜色和边距来显示它的功能


下面是结果


那么,如何停止剪裁
路径
形状?

我生成此显示的方法是使用容器(在您的情况下是边框)来控制图形的大小,然后使用
拉伸=“填充”
定义路径,以使用尽可能多的可用空间。这样,您就可以使用路径自己的标称坐标系指定路径的
数据
值,而不是计算路径每个顶点的确切像素位置

<Border Background="LightGreen" Width="140" Height="60">
    <Path
        Margin="10"
        Data="M 0,3 L 3,0 `L 3,2 L 10,2 L 10,4 L 3,4 L 3,6 z"
        Fill="Yellow"
        Stroke="Black"
        StrokeThickness="4" 
        Stretch="Fill" />
</Border>


好的,这不完全是我想要的(因为我希望图形扩展到边界之外),而是一种解决方法:

通过路径自身的几何图形剪裁路径,然后将笔划厚度加倍,如下所示:


。或者只是不设置它的宽度和高度。不完全一样!这将导致路径缩小到边界内,这确实会导致路径完全可见,但现在图形没有与它们需要的位置对齐,因为它们被缩小了。
Stretch=“Fill”
也可以工作。一般情况下,不要将“宽度”和“高度”设置为“拉伸=无”。这也会导致几何体收缩到边界内,但这一次它会扭曲。我实际上是在玩人工偏移几何体10,10,增加宽度和高度20,然后在外部放置负10边距。这样,它使用布局系统来避免剪裁。这是一个骗局,但它可能有效。正如所说的,只是不要设置宽度和高度。或者至少设置足够大的值,以允许绘制笔划的“外”一半。使用60和120,在所有坐标中添加10,并删除边距。有趣!但是,这会弄乱实际的图形对齐,因为它会拉伸几何体,所以坐标不会与我需要的位置对齐。我确实尝试了
Uniform
,它消除了失真,但仍然没有将点与它们需要的位置对齐,因为这样可以将大小减小到边界内。真奇怪@Donohoe我倾向于通过指定内缘和外缘来定义形状,而不是使用路径的笔划来创建图形项目,这样就不会出现让东西对齐的问题。看看我的博客文章就知道一个例子。是的,我通常自己就是这么做的。但在这种情况下,我们必须使用笔划。但是我想我有工作要做。。。绘制图形偏移10,10,将宽度和高度增加20(这实际上是绘制10的边距),然后对路径应用负10边距。这样从技术上讲,图形不会被剪裁。布局补偿了最终定位。