2011-03-28 110 views
1

我在画布布局上安排了很多元素,实际上这些元素表示交互式流程图。在应用转换时,我需要对某些元素进行相对转换。画布布局中WPF中的锚定/停靠行为

特别是我需要一些元素被锚定或停靠到他们的父元素。我发现了不同的解决方案,但我不知道他们是否以最优雅的方式解决了我的问题。

下面是一个例子:

<Line X1="80" X2="800" Y1="730" Y2="730"/> 
<Polygon Points="0,30 40,0 40,60" Canvas.Left="48" Canvas.Top="700"/> 

多边形绘制一个三角,我希望让它停靠上线的左侧。这意味着,在将线条翻译到新的位置或将其缩小时,多边形应随之移动。

这可能吗?

回答

3

把它们放在自己的画布上,这样就可以完全放置外部画布,并将内部的东西保持在一起。

这样的:

<Canvas> 
    <Line X1="60" X2="820" Y1="60" Y2="760"> <!--some other line--> </Line> 
    <Canvas Canvas.Left="48" Canvas.Top="700"> 
     <Polygon Points="0,30 40,0 40,60"/> 
     <Line X1="32" X2="752" Y1="30" Y2="30"/> 
    </Canvas>   
</Canvas> 
+0

把线到自己的印刷品吗?我也可以让它们从X1 = 0开始,并将它们放在Canvas.Left和Canvas.Top中。对不起,这不回答我的问题,也许我是不是应该做些什么?我想知道如何通过使用绝对位置来动态定位元素。 – 2011-03-28 10:20:47

+0

请看我的更新,也许我还不够清楚。如果你想保持元素在一起,只需将它们放在一个容器中,它们将它们放在一起并改变容器 – 2011-03-28 10:42:49

+0

@ Markus-hutter谢谢,这部分解决了它,因为我怎样才能缩小内部的行,并且只有行和让多边形转化为线的新位置? – 2011-03-28 11:15:36