Как пользовательский элемент управления может иметь динамическую высоту? - PullRequest
1 голос
/ 20 ноября 2010

Я делаю элемент управления, в котором есть pictureBox и checkBox.Я оборачиваю все это в пользовательский элемент управления в Windows Forms.

Вместо жесткого кодирования и нахождения необходимой высоты, есть ли способ получить высоту его родительского контроллера, скажем, с полем вершины 4pxа низ?

Ответы [ 2 ]

2 голосов
/ 20 ноября 2010

Вы можете установить для свойства Dock UserControl значение Fill. Это позволит UserControl заполнить доступное пространство родительского контейнера (не используется другими закрепленными элементами управления). Если вам также требуется заполнение, вы можете установить свойство DockPadding родительского контейнера следующим образом:

container.DockPadding.Top = 4;
container.DockPadding.Bottom = 4;

Однако, если вы не хотите, чтобы элемент управления также принимал ширину родительского контейнера, вам следует использовать свойство Anchor объекта UserControl. Установите значение Bottom and Top следующим образом:

this.Anchor = AnchorStyles.Bottom | AnchorStyles.Top;

Когда он добавлен в контейнер, установите его Location и Size, чтобы его верх находился в 4 пикселях от верхней части контейнера, а его низ - в 4 пикселях от нижнего. Затем, когда контейнер изменяет свою высоту, пользовательский элемент управления тоже будет.

0 голосов
/ 20 ноября 2010

Да, вы можете установить для свойства Anchor элемента управления значение AnchorStyles.Top | AnchorStyles.Bottom после изменения размера элемента управления с требуемым заполнением в родительском элементе управления.

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

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