Принудительно отображать полосы прокрутки в ListView?

Фон: Большинство из нас знаетSysListView32 общий контроль и эквивалентная оболочкаListView класс, предоставляемый.NET Framework, Небольшая глубина в его внутренностях показывает, что полосы прокрутки, которые это обеспечивает для прокрутки его содержания,НЕ контролирует себя, но управляютсяSysListView32 контроль.

Цель: Всегда рисовать полосы прокрутки, даже если у него нетListViewItems отображать или имеет очень мало таких, что полосы прокрутки не нужны в любом случае; вроде как подражаяRichTextBox класс с егоScrollBars свойство установлено вForcedBoth, Или вроде какListBox:

Проблемы):

.СЕТЬ имеетНЕТ сахар вообще для полос прокрутки в пределахListView.В документации Win32 не указано, когдапоказать спрятать и / иливключить выключить скроллбары.

Мой обходной путь (ы):

override WndProc в производном классе и обрабатывать егоWM_HSCROLL а такжеWM_VSCROLL сообщения согласно шагам 2 и 3.Вызовbase.WndProc выполнить фактически требуемую обработку функции прокрутки.Создайте метод какWmScroll и делатьмой обработка на нем немедленноafter base.WndProc вернулся.Это состоит из вызова p / invokeGetScrollInfo, Определите, действительно ли нужна полоса прокрутки. Если это не так, позвонитеShowScrollBar а такжеEnableScrollBar с необходимыми значениями для рисования визуально отключенных полос прокрутки.

Проблемы с обходным решением:

Это едва работает. Полосы прокрутки отображаются и отключены, но похожи наWindows Classic Theme.Он скрывает кнопки свертки каждогоListViewGroup, делая их бесполезными!

Описательное изображение:

Долгожданный актуальный вопрос:

Как заставить полосы прокрутки всегда быть Visible в пределах ListView независимо от количества ListViewItems и отключите их, если они не нужны, при этом избегая просчета размера (для отображения кнопок свертывания ListViewGroups) а тема ухудшения?

Ответы без кода и ответы с кодом вC #, VB.NET а такжеC ++ / CLR Добро пожаловать Если вы публикуете код на любом другом языке, поддерживаемом .NET, оставьте также ссылку на веб-сайт преобразования кода, который я могу использовать, если код кажется непонятным.