Как закрепить сверху и слева

С помощью привязки я могу написать следующую строку:

myControl.Anchor = (AnchorStyles.Top | AnchorStyles.Left);

И она будет привязывать myControl слева и сверху.

Почему я не могу сделать следующее:

myControl.Dock = (DockStyle.Top | DockStyle.Left);

Я могу написать вышеприведенную строку, но все, что он делает, это устанавливает DockStyle влево.

Есть какие-нибудь мысли / причины для этого?

11
задан Alex Humphrey 9 August 2010 в 17:39
поделиться

3 ответа

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

Например, DockStyle.Left означает, что высота пристыковываемого элемента всегда будет высотой контейнера, а расположение X,Y всегда будет 0, 0.

DockStyle.Top означает, что ширина элемента всегда будет шириной контейнера, а расположение всегда будет 0,0.

Установка DockStyle.Top и DockStyle.Left по сути даст вам DockStyle.Fill. Т.е. ту же ширину и высоту, что и контейнер.

13
ответ дан 3 December 2019 в 06:44
поделиться

Док Dock - это предварительно определенный набор якорей, в то время как Anchor - это пользовательская конфигурация дока.

DockStyle.Top - это то же самое, что Anchor = (AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right), за исключением того, что якорь может находиться в любом начальном положении, а док будет перемещаться к дальнему краю.

3
ответ дан 3 December 2019 в 06:44
поделиться

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

Вот почему существует свойство Якорь , чтобы вы могли более конкретно настроить реакцию элемента управления на изменение размера формы.

2
ответ дан 3 December 2019 в 06:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: