繁体   English   中英

在WPF中的Canvas内绑定UserControl的位置和大小

[英]Binding the position and size of a UserControl inside a Canvas in WPF

我们需要动态创建(即在运行时,通过后台代码)UserControl,并将其放置在Canvas上。 我们希望将那些较大的(!)和可拖动的(!)UserControl的位置(Canvas.Left和Canvas.Top)和宽度绑定到ObservableCollection <>。 当用户拖动或调整控件大小时,数据源会自动更新。

如果UserControl包含在一个DataTemplate中,然后又由一个ListBox使用该控件的DataContext设置为我们要绑定到的集合,我们将如何实现呢?

换句话说,我们如何绑定XAML中不存在的控件的位置和大小,而仅在代码中绑定(因为它是通过单击并拖动鼠标创建的)?

请注意,集合可以为空或不为空,这意味着必须正确绑定到数据源中存储的大小和位置,以便可以通过DataBinding在画布中正确设置大小和定位UserControl。 这可能吗?

您是否尝试过使用Mode=TwoWay绑定?

<YourUserControl 
    Canvas.Top="{Binding TopProperty, Mode=TwoWay}" 
    Canvas.Left={Binding LeftProperty, Mode=TwoWay}" 
    Height="{Binding HeightProperty, Mode=TwoWay}" 
    Width="{Binding WidthProperty, Mode=TwoWay}" />

我不相信双向绑定将适用于调整大小或拖放操作,但是只有一种方法可以找出答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM