我正在制作一个UserPatrol,它是StackPanel的子节点。当内容发生变化时,控件的大小也应该改变。 UserControl应该如何通知StackPanel(或任何其他容器控件)它的大小已经改变了?
例如,如果您有一个Label控件并更改了Content元素,那么它将被调整大小。它是如何做到的?
答案 0 :(得分:0)
调用InvalidateMeasure()。这会导致StackPanel(或其他容器控件)重新计算其布局。
答案 1 :(得分:0)
此外,除了InvalidateMeasure之外,如果大小的更改是依赖项属性更改的结果,则可以设置FrameworkPropertyMetadata.AffectsMeasure标志:
public static DependencyProperty ToolbarProperty =
DependencyProperty.Register("Toolbar", typeof(UIElement),
typeof(EditorWindow),
new FrameworkPropertyMetadata(null,FrameworkPropertyMetadataOptions.AffectsArrange|
FrameworkPropertyMetadataOptions.AffectsMeasure|FrameworkPropertyMetadataOptions.AffectsRender));