Как уведомить контейнерный элемент управления о том, что дочерний элемент управления изменил размер? - PullRequest
0 голосов
/ 13 июля 2009

Я делаю UserControl, который является дочерним элементом StackPanel. При изменении содержимого его размер также должен измениться. Как UserControl должен уведомить StackPanel (или любой другой контейнерный элемент управления) об изменении его размера?

Например, если у вас есть элемент управления Label и вы изменили элемент Content, он будет изменен. Как это сделать?

Ответы [ 2 ]

0 голосов
/ 13 июля 2009

Кроме того, в дополнение к InvalidateMeasure, если изменение размера является результатом изменения свойства зависимости, можно установить флаг FrameworkPropertyMetadata.AffectsMeasure:

public static DependencyProperty ToolbarProperty =
            DependencyProperty.Register("Toolbar", typeof(UIElement),
            typeof(EditorWindow), 
            new FrameworkPropertyMetadata(null,FrameworkPropertyMetadataOptions.AffectsArrange|
            FrameworkPropertyMetadataOptions.AffectsMeasure|FrameworkPropertyMetadataOptions.AffectsRender));
0 голосов
/ 13 июля 2009

Вызов InvalidateMeasure (). Это приводит к тому, что StackPanel (или другой элемент управления контейнера) пересчитывает свой макет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...