Панель FlowLayoutPanel. Пользовательские полосы прокрутки

#c# #winforms #devexpress #scrollbar #flowlayoutpanel

#c# #winforms #devexpress #полоса прокрутки #flowlayoutpanel

Вопрос:

Возможно ли использовать сторонний элемент управления прокруткой внутри FlowLayoutPanel? Дело в том, что мы используем элементы управления devexpress, а элементы управления полосой прокрутки FlowLayoutPanel выглядят не очень хорошо.

Есть ли способ настроить рисование или заменить их элементами управления devexpress.

Есть идеи о том, как это сделать?

Ответ №1:

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

Наконец, это всего лишь идея, и она может сработать. Вам следует отключить полосы прокрутки FlowLayoutControl и расположить наши полосы прокрутки рядом с элементом управления. Вам нужно будет обработать событие прокрутки полос прокрутки, чтобы программно прокрутить FlowLayoutControl, а также синхронизировать положение полос прокрутки. Это непростая задача, но у меня просто нет другой идеи о том, как это можно сделать.

Комментарии:

1. Изначально мы использовали XtraLayout. Но операциями перетаскивания было трудно управлять. Например, если бы нам нужно было отключить опцию выпадения «Сверху». Я разместил здесь вопрос. community.devexpress.com/forums/t/98889.aspx

Ответ №2:

У меня была такая же потребность, и я придумал решение, объединяющее стандартную FlowLayoutPanel с DevExpress XtraScrollableControl. Смотрите мой пост здесь.

Комментарии:

1. Да, в конечном итоге я использую XtraScrollableControl. Но у меня сработало только использование привязки FlowLayoutPanel к началу и Autoresize = true. Нет необходимости в событии изменения размера.

2. @Aseem: Вы правы и даже лучше! Я пропустил привязку FlowLayoutPanel справа, а также установку AutoSize = true. Спасибо, что поделились!