【发布时间】:2010-09-27 13:43:16
【问题描述】:
如何创建这种类型的画布 - http://www.silverdiagram.net/Projects/SilverDiagram/SilverDiagram_Demo.aspx?我想将控件完全对齐。我想帮助用户使用自动对齐(如 Visual Studio)并通过为用户提供比例来正确对齐它。
【问题讨论】:
标签: c# silverlight canvas
如何创建这种类型的画布 - http://www.silverdiagram.net/Projects/SilverDiagram/SilverDiagram_Demo.aspx?我想将控件完全对齐。我想帮助用户使用自动对齐(如 Visual Studio)并通过为用户提供比例来正确对齐它。
【问题讨论】:
标签: c# silverlight canvas
Canvas 是正确的容器,因为您可以通过坐标定位其子控件。您的问题更多是关于移动元素,这实际上是拖放。
您必须处理鼠标事件:MouseDown 选择一个项目,MouseMove 检测拖动,MouseUp 放下它。在移动或放置过程中,您可以更改元素的坐标以在网格上自动对齐或与周围元素进行比较。
我在 Silverlight 中成功制作了这样一个项目,并使用 Adorners 为元素添加了调整大小处理程序。
我通过将Canvas 放入Viewbox(位于ScrollViewer 中)解决了平移和缩放问题。如果您想让用户控制缩放系数,请将LayoutTransform 应用于Canvas(在Toolkit 中可用)。
【讨论】: