c# - WPF 中组合元素的部分缩放

标签 c# .net wpf

我处于以下情况:设计交互式流程图 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 没问题。此外,我只想缩小LineScale Transform没问题。

但是(!)与此同时,我希望多边形 粘在直线的两个末端。当仅缩小线条时,多边形(至少有一个)会漂浮起来。

我不知道如何停靠这些元素或在相对基础上定义它们。它在整个 Canvas 上按比例缩小时效果很好,但这也会改变 PolygonImages

最佳答案

为了我,你必须定义 anchor ,作为附加属性。甚至定义一个行为来根据多边形放置跟踪这些点。然后你可以将这些属性绑定(bind)到线的起点/终点。通过这种方式,线应该保持在多边形上。但是我没有尝试,只是一个设计思路。

关于c# - WPF 中组合元素的部分缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5461881/

相关文章:

c# - 在 .NET 中创建固定大小的文件

c# - SQL Server 2016 Express LocalDb - 有人有下载页面的链接吗?

c# - 如何在我的 ASP.NET 站点中显示另一个站点的 RSS 提要?

.net - 在 Silverlight 单元测试中等待事件触发

c# - 内部接口(interface)实现

c# - 以编程方式安排/创建 Skype for Business session

c# - SHA256 使用文件的哪些部分来计算哈希值

c# - Prism 实际上为开发人员提供了什么?值得吗?

WPF 数据网格绑定(bind)复杂类型属性

C# WPF 库创建