Макет WPF вызывает MeasureOverride несколько раз с шагом 2?

Я столкнулся с случаем, когда у меня есть пользовательская панель (наследуется от Panel), и я использую ее как ItemsPanel в ListView.

Когда я изменяю размер контейнера, в котором он находится, если я изменяю его размер меньше, функция MeasureOverride моей панели вызывается один раз, но если я изменяю его размер больше (скажем, от 100 до 300), он вызывает MeasureOverride и ArrangeOverride для каждого значения от 100 до 300 с шагом 2 (т. е. 102, 104 и т. д.).

Странно то, что размер контейнера сразу же изменяется (его размер сразу достигает 300).

Кажется, не имеет значения, что я возвращаю из MeasureOverride - он просто делает это.

Хотелось бы, чтобы это произошло в очень маленьком приложении и опубликовало его здесь, но я пока не смог воспроизвести его таким образом. Я могу воспроизвести это весь день в моем приложении, хотя.

Кто-нибудь знает, что может быть причиной этого?

1 ответ

Я смог обойти это поведение, динамически установив свойство MinWidth моей панели так, чтобы оно менялось в зависимости от размера контейнера. Это предотвратило ненужные вызовы MeasureOverride. Я все еще немного не уверен, почему это происходило все же.

Другие вопросы по тегам