2009-07-13 33 views
0

我正在做一個UserPanel,它是一個StackPanel的子節點。當內容發生變化時,控件的大小也應該改變。 UserControl應該如何通知StackPanel(或任何其他容器控件)它的大小已更改?如何通知容器控件子控件已更改大小?

例如,如果您有一個Label控件並更改了內容元素,那麼它將被調整大小。它是如何做到的?

回答

0

調用InvalidateMeasure()。這會導致StackPanel(或其他容器控件)重新計算其佈局。

0

此外,除了InvalidateMeasure,如果在尺寸上的變化是一個依賴屬性的變化,你可以設置FrameworkPropertyMetadata.AffectsMeasure標誌結果:

public static DependencyProperty ToolbarProperty = 
      DependencyProperty.Register("Toolbar", typeof(UIElement), 
      typeof(EditorWindow), 
      new FrameworkPropertyMetadata(null,FrameworkPropertyMetadataOptions.AffectsArrange| 
      FrameworkPropertyMetadataOptions.AffectsMeasure|FrameworkPropertyMetadataOptions.AffectsRender)); 
相關問題