在我决定使用哪个容器加载我的控件后,画布。 From my previous question.
我开始在google上搜索如何移动,在Canvas上调整UIElement的大小。第一篇文章来自 Josh Smith ,Dragging Elements in a Canvas。
当我完成阅读并托盘示例时。这不是我正在寻找的,但它非常接近。在我遇到来自 igkutikov ,Dragging Elements in a Canvas的文章之后,他们遇到了相同的情况并且创建了一个非常有用的类来管理构建可拖动画布的所有方法。最后我决定使用这个课程并适应我的项目。
提示:对于谁正在学习如何使用可拖动控件构建画布。建议阅读和研究前两篇文章
在igkutikov的文章中,为了使用“DragCanvas.cs”类,我们定义了放置类的命名空间。我们在项目中实现的延续是DragCanvas,它是关于Canvas的接口。
<tools:DragCanvas x:Name="UCDragCanvas" Grid.Column="0" Background="Black">
<Button Click="ButtonBase_OnClick" Content="Move me" Canvas.Left="30" Canvas.Top="40" tools:DragCanvas.CanBeDragged="True"></Button>
</tools:DragCanvas>
因此,在上面的示例中,当我们添加Button时,我们可以设置Canvas.Left,Canvas.Top和DragCanvas.CanBeDragged属性,这些属性是来自其父级的属性。此父级是我们的UCDragCanvas容器。
我现在的问题是,如何从代码背后做到这一点?
Button btn = new Button();
btn.Content = "Move me";
// ToDo add UCDragCanvas Properties for btn.
UCDragCanvas.Children.Add(btn);
非常感谢和问候!
答案 0 :(得分:0)
Canvas.SetLeft(btn, 30);
...
DragCanvas.SetCanBeDragged(btn,true);