Изменение размера компонентов внутри пользовательского элемента управления при максимальном увеличении

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

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

Я установил для свойства Dock пользовательского элемента управления значение Fill.

Я изменил свойства привязки кнопок и дерева внутри пользовательского элемента управления, но поведение было не таким, как ожидалось. Например, я попытался установить свойство привязки для правого древовидного списка как Верх, Низ, Левый =>, и результат был катастрофой.

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


person MohamedSalem    schedule 15.12.2014    source источник
comment
Снимок экрана? Было бы гораздо проще понять. Вы хотите также изменить размер кнопок при максимизации формы?   -  person C4d    schedule 15.12.2014
comment
Вы понимаете, что именно делают док и якоря? Потому что это довольно просто, и любое странное поведение можно легко решить, просто взглянув на содержащий элемент управления. Кнопки обычно просто привязаны к углу (верхний левый, нижний правый и т. д.), поэтому их размер не изменяется.   -  person Andrew    schedule 15.12.2014
comment
@C4ud3x я пытался загрузить фотографии, но не смог, потому что я публикую здесь впервые, и мне нужно было 10 рекомендаций :)   -  person MohamedSalem    schedule 15.12.2014
comment
@Эндрю, я немного разбираюсь в якоре и док-станции и использовал его некоторое время, но когда я использую его с древовидным представлением, все становится беспорядочным. Вот что я пытаюсь сделать: это то, что я пытаюсь сделать, и это то, что я получаю, когда я максимизирую: photobox.co.uk/my/photo/full?photo_id=2528891743   -  person MohamedSalem    schedule 15.12.2014
comment
Это будет очень похоже на то, что я сделал здесь.   -  person Idle_Mind    schedule 15.12.2014
comment
@Idle_Mind спасибо, это именно то, что я пытался сделать :)   -  person MohamedSalem    schedule 15.12.2014


Ответы (1)


Похоже, вам нужен интерфейс «3 столбца», в котором у вас есть TreeView с обеих сторон и Button посередине, чтобы обеспечить перемещение между ними. Предполагая, что это правильно, вы можете выполнить автоматическое изменение размера с помощью файла TableLayout.

По сути, это будет так:

  1. Add a TableLayout and edit the rows/columns such that there is a single row with 3 columns:
    • The first and last column would be sized at 50% (and would hold your TreeViews).
    • Середина будет иметь абсолютный размер (например) 120. Это будет содержать ваш Buttons.
  2. Установите свойства этого нового TableLayout в Dock -> Fill the form. Это позволит увеличить размер всей таблицы вместе с вашей формой.
  3. Добавьте элементы управления TreeView в левый/правый столбцы и установите для них Dock -> Fill соответствующие столбцы. Поскольку эти столбцы имеют динамический размер, они будут расти вместе с формой.
  4. В средней колонке добавьте Panel и установите его в Dock -> Fill. Мы добавляем сюда Panel, чтобы хранить несколько Button, которые вы используете для движения. Этот Panel не будет увеличиваться в размере, поскольку средний столбец имеет абсолютный размер.
  5. Добавьте свои Button к средним Panel.

Без скриншота я не совсем уверен, чего вы пытаетесь достичь, но я считаю, что это похоже на это. Преимущество этой установки в том, что в ней нет кода.

person Jason Faulkner    schedule 15.12.2014
comment
Спасибо, Джейсон, за ваш ответ, но после выполнения шагов, которые вы упомянули выше, я столкнулся со следующей формой формы: photobox.co.uk/my/photo/full?photo_id=2528881399 Это то, о чем я не подумал, мне нужно добавить древовидное представление в центр формы и когда максимизирован, он все еще будет в центре, сохраняя ту же пропорцию с формой, чтобы его можно было легко максимизировать и минимизировать :) - person MohamedSalem; 15.12.2014
comment
Вот что я пытаюсь сделать И вот что я получаю, когда максимизирую: photobox.co.uk/my/photo/full?photo_id=2528891743 - person MohamedSalem; 15.12.2014
comment
@MohamedSalem - ваши графические ссылки работают. Он хочет, чтобы я создал учетную запись. - person Jason Faulkner; 15.12.2014
comment
как я могу поделиться изображением здесь, потому что я новичок в публикации переполнения стека :) - person MohamedSalem; 15.12.2014
comment
@MohamedSalem - Мое решение должно позволить вам создать тот же интерфейс, что и в сообщении Idle_Mind (из ветки комментариев к вашему вопросу). - person Jason Faulkner; 16.12.2014
comment
Да, спасибо за помощь :). Сначала я попробовал это, и это не сработало, но я сделал это снова и работал нормально. Спасибо большое :) - person MohamedSalem; 16.12.2014