Макет WPF вызывает MeasureOverride несколько раз с шагом 2?
Я столкнулся с случаем, когда у меня есть пользовательская панель (наследуется от Panel), и я использую ее как ItemsPanel в ListView.
Когда я изменяю размер контейнера, в котором он находится, если я изменяю его размер меньше, функция MeasureOverride моей панели вызывается один раз, но если я изменяю его размер больше (скажем, от 100 до 300), он вызывает MeasureOverride и ArrangeOverride для каждого значения от 100 до 300 с шагом 2 (т. е. 102, 104 и т. д.).
Странно то, что размер контейнера сразу же изменяется (его размер сразу достигает 300).
Кажется, не имеет значения, что я возвращаю из MeasureOverride - он просто делает это.
Хотелось бы, чтобы это произошло в очень маленьком приложении и опубликовало его здесь, но я пока не смог воспроизвести его таким образом. Я могу воспроизвести это весь день в моем приложении, хотя.
Кто-нибудь знает, что может быть причиной этого?
1 ответ
Я смог обойти это поведение, динамически установив свойство MinWidth моей панели так, чтобы оно менялось в зависимости от размера контейнера. Это предотвратило ненужные вызовы MeasureOverride. Я все еще немного не уверен, почему это происходило все же.