簡體   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