2016-07-21 5 views
1

Мой пользовательский элемент управления выглядит так в своем дизайнере.Как сохранить отдельные элементы управления пользовательского элемента управления от распространения (и по-прежнему разрешить изменение размера)

[My User Control in its designer looks like this:[1]

Но когда я бросаю его в родительскую форму, это выглядит следующим образом:

In the parent form it looks like this:

У меня есть главная панель, содержащую кнопку «Папка» и ComboBox. Маленькие навигационные кнопки справа находятся во вложенной панели.

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

Я пробовал кучу вещей, но я работаю со слишком многими переменными (якорь, док, minsize, maxsize, autosize), а не grokking всех взаимодействий. Я надеюсь, что кто-то знает волшебную комбинацию, поэтому мне не нужно исчерпывать все возможности.

Должен ли я использовать другой макет контейнера? Я еще не исследовал контейнеры раскладки таблицы или потока. Я предположил, что они еще больше усложнят ситуацию.

ответ

1

Вы можете использовать док-станцию ​​или якорь для этого (но не оба одновременно).

  1. Usich якорь вы указываете, к которому граница родительского контроля должны иметь постоянное расстояние, так:

    • Folder должен иметь набор узловую Top + Bottom + Left
    • Version вход должен иметь якорь set Top + Bottom + Left + Right
    • Контейнер секции Up должен иметь якорь Top + Bottom + Right;
  2. Использование док-станции:

    • Folder должен иметь док установлен слева;
    • Version вход должен иметь док набор для заполнения и должен быть первым управления добавлен в контейнер (правой кнопкой мыши на нем в редакторе конце нажмите «На передний план»)
    • Контейнер секции Up должен иметь Dock к правому краю

в качестве альтернативы можно использовать TableLayoutPanel - первый и последний столбец будет иметь постоянную ширину, средний будет растягиваться с родителем.

+0

«Привести к фронту», похоже, не имеет желаемого эффекта, который вы описываете. Мне нужно вручную изменить порядок вставки в дизайнере, чтобы получить контроль над док-станцией справа. Как стыковка, так и анкеровка, похоже, имеют нежелательные побочные эффекты. Я попытался включить минимальный и максимальный размер, но этот вид побеждает всю цель. Поэтому правильный ответ - использовать TableLayoutPanel. –