#wpf #layout #measureoverride
#wpf #компоновка #measureoverride
Вопрос:
Я хочу инициировать измерение / упорядочивание компоновки ItemsControl вручную в коде без взаимодействия с пользователем. Возможно ли это? Если да, то каким образом? Я пытался InvalidateMeasure()
, UpdateLayout()
, но без толку.
Комментарии:
1. В чем ваша реальная проблема? Зачем вам нужно запускать управление компоновкой?
Ответ №1:
Используйте InvalidateVisual
метод для вызова повторного рендеринга:
Делает недействительным рендеринг элемента и принудительно выполняет полный новый проход компоновки. OnRender вызывается после завершения цикла компоновки.
Однако, поскольку Microsoft рекомендует, чтобы это едва ли использовалось вручную в приложениях, вероятно, существует другое решение вашей проблемы (например, правильное использование свойств зависимостей, например), если бы мы это знали.
Комментарии:
1. Даже это не работает. Где вызвать этот метод? Из ItemsControl или из ItemsPanel?
2. Пожалуйста, определите «не работает». Что происходит? Чего не происходит? Что вы ожидаете, что произойдет?
3. У меня есть точка останова при переопределении меры ItemsPanel моего элемента управления (скажем, моей пользовательской панели). И я пробую методы, как вы сказали, как в ItemsControl, так и в ItemsPanel. Но точка останова не достигается.