2009-07-13 79 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)); 
相关问题