Как установить толщину полосы прокрутки в scrollviewer

Как я могу контролировать толщину горизонтальной или вертикальной Scrollbar, которая отображается в / как часть элемента управления DataGrid? Я хотел бы, чтобы они отображались «толще», чем то, что отображается в данный момент.

Примечание. Чтобы показать пример приложения с фиктивными данными в DataGrid, приведенные ниже снимки экрана основаны на примере приложения «Xaml brewer», которое вы можете найти здесь.

У меня есть DataGrid, который всегда показывает вертикальные и горизонтальные полосы прокрутки (я удалил весь несущественный код XAML):

<Page
    xmlns:controls = "using:CommunityToolkit.WinUI.UI.Controls"
    mc:Ignorable = "d">

    <Grid>

        <controls:DataGrid AutoGenerateColumns = "False" 
                           VerticalScrollBarVisibility = "Visible"
                           HorizontalScrollBarVisibility = "Visible">

            <controls:DataGrid.Columns>
            </controls:DataGrid.Columns>

        </controls:DataGrid>

    </Grid>

</Page>

Так обычно отображаются полосы прокрутки, т. е. DataGrid имеет фокус, но мышь в данный момент не зависает над одной из полос прокрутки. Они отображаются очень тонко, так что пользователи моего приложения иногда их не узнают:

Вот как отображается Scrollbar, когда мышь в данный момент находится над одним из них (в данном случае это горизонтальная полоса прокрутки внизу). Теперь этот отображается немного толще и, следовательно, его легче увидеть:

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

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Есть ли способ отобразить полосы прокрутки толще/установить их толщину

Возможно, вы сможете изменить стиль ScrollBar, но пустой стиль ScrollBar должен дать вам WPF-подобный ScrollBar.

<controls:DataGrid>
    <controls:DataGrid.Resources>
        <Style TargetType = "ScrollBar" />
    </controls:DataGrid.Resources>
</controls:DataGrid>

указать, что они всегда должны отображаться так, как они отображаются при наведении на них курсора

Для этого я опубликовал пакет NuGet под названием AK.Toolkit.WinUI3.ScrollBarExtensions. Попробуйте и посмотрите, соответствует ли он вашим требованиям.

<Page
    :
    xmlns:controls = "using:CommunityToolkit.WinUI.UI.Controls"
    xmlns:toolkit = "using:AK.Toolkit.WinUI3" />

    <controls:DataGrid
        toolkit:ScrollBarExtensions.KeepHorizontalExpanded = "True"
        toolkit:ScrollBarExtensions.KeepVerticalExpanded = "True"
        HorizontalScrollBarVisibility = "Visible"
        VerticalScrollBarVisibility = "Visible" />

</Page>

Я протестировал ваш пакет nuget, и он работает очень хорошо, спасибо. Полосы прокрутки остаются в «расширенном» режиме при установке свойств «KeepExpanded», которые вы указали в своем примере. Спасибо :)

Martin 11.04.2023 11:06

Я еще немного протестировал свойства KeepExpanded. Кажется, что они применяются правильно при первой загрузке пользовательского интерфейса, но затем он возвращается к стандартному «нерасширенному» режиму.

Martin 11.04.2023 11:34

Странный. Невозможно воспроизвести его в образце приложения. Вы имеете в виду, что если вы оставите его на некоторое время, ScrollBar спрячется? Буду очень признателен, если вы опубликуете проблему в репозитории GitHub.

Andrew KeepCoding 11.04.2023 12:08

Я не совсем уверен. Что я могу вам сказать, так это то, что у меня есть «Страница», которая использует NavigationCacheMode.Required для хранения своих данных. Когда я вижу страницу в первый раз, просмотрщики прокрутки расширяются правильно. Но когда я перехожу на другую страницу, а затем повторно перехожу на первую страницу, прокрутки больше не расширяются. Хорошо, я опубликую проблему в репозитории GitHub.

Martin 11.04.2023 12:35

Я разместил проблему в репозитории github: github.com/AndrewKeepCoding/AK.Toolkit/issues/44

Martin 11.04.2023 13:12

Это исправлено в AK.Toolkit.ScrollBarExtensions v1.0.5. Спасибо за отзыв @Мартин!

Andrew KeepCoding 13.04.2023 16:34

Другие вопросы по теме

Добавьте столбец изображения в сетку данных WPF и заполните в соответствии с первыми двумя символами в другом столбце
WPF — ItemControl с DataGrid — как изменить цвет фона строки из модели [MVVM]
Разбивка таблицы MUI DataGrid не работает
Изменение цвета фона заголовка столбца при вертикальной прокрутке в пользовательском интерфейсе материала DataGrid
Как обеспечить горизонтальную полосу прокрутки для компонента сетки данных form.io?
С# привязка вложенного объекта к ячейке поля со списком DataGrid Источник элемента
Как настроить модель начального состояния DataGrid пользовательского интерфейса материала для даты?
Как выполнить команду в текстовом клике DataGridTextColumn
Как изменить порядок данных из свойств, отображаемых в WPF DataGrid из базового класса и производного класса?
Как мы можем применить несколько фильтров к DataGridView, передав отфильтрованные данные второму фильтру и так далее?