Остановите загрузку элементов управления в панели Wrap, как только она заполнится - PullRequest
1 голос
/ 23 марта 2012

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

Для этого я написал: https://github.com/LucasMoffitt/WordFiller/blob/master/WordFiller.Controls/WordLayoutPanel.cs

Это просто устанавливает свойство в false, если входящий элемент управления касается прямоугольника, который я рисую внизу панели.

При попытке повторить этоповедение в WPF Я не могу найти способ заставить WrapPanel прекратить прием элементов управления, если он заполнен.

Я попытался переопределить методы Arrange и Measure, но их вызывают только один разэлементы управления были добавлены.Мне нужно иметь возможность вообще не загружать элементы управления.

У кого-нибудь есть идеи?

Ответы [ 2 ]

0 голосов
/ 29 марта 2012

Итак, я принял несколько предложений и пришел к следующему:

https://github.com/LucasMoffitt/CustomWrapPanel

По сути, это то, что я делал, чтобы начать с небольшого убранства, и у меня есть демонстрационное приложение.

Я призываю всех участников, если кто-нибудь найдет лучший способ сделать это!

0 голосов
/ 23 марта 2012

Вы можете проверить ActualHeight / AcxtualWidth против DesiredHeight / DesiredWidth.Когда DesiredHeight становится больше, чем ActualHeight - панель начинает перекрываться.

...