我处于以下情况:设计交互式流程图 GUI。我坚持制作流程图的缩小动画。流程图的组成元素被最小化,但它们保持事件状态。
我有这样的东西:
<Canvas Canvas.Left="55" Canvas.Top="720" Height="100" Width="500" Tag="stepDown">
<Line Stroke="#99CCFF" StrokeThickness="8" X1="0" X2="720" Y1="10" Y2="10">
<Polygon Stroke="Black" StrokeThickness="2" Points="0,30 40,0 40,60" Canvas.Left="-20" Canvas.Top="-20" Fill="#99CCFF"></Polygon>
<Polygon Stroke="Black" StrokeThickness="2" Points="0,0 0,60 40,30" Canvas.Left="720" Canvas.Top="-20" Fill="#99CCFF"></Polygon>
<Image Canvas.Left="-50" Canvas.Top="-70" Height="53" Name="image32" Source="img/outlet.png" Stretch="Fill" Width="30" Tag="relative" />
</Canvas>
我想将整个 Canvas 及其元素向左移动 - Translate Transform 没问题。此外,我只想缩小Line,Scale Transform没问题。
但是(!)与此同时,我希望多边形 粘在直线的两个末端。当仅缩小线条时,多边形(至少有一个)会漂浮起来。
我不知道如何停靠这些元素或在相对基础上定义它们。它在整个 Canvas 上按比例缩小时效果很好,但这也会改变 Polygon 和 Images。
最佳答案
为了我,你必须定义 anchor ,作为附加属性。甚至定义一个行为来根据多边形放置跟踪这些点。然后你可以将这些属性绑定(bind)到线的起点/终点。通过这种方式,线应该保持在多边形上。但是我没有尝试,只是一个设计思路。
关于c# - WPF 中组合元素的部分缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5461881/