Как увеличить ширину полосы прокрутки в WPF ScrollViewer?
Я работаю над сенсорным экраном на маленьком устройстве, а пользовательская ширина полосы прокрутки не подходит, поскольку одним из моих требований является то, что все должно выполняться жесты пальцев.
Как установить ширину полосы прокрутки WPF ScrollViewer?
Заметьте, что я не хочу менять ширину всех полос прокрутки на устройстве (выполнимо через настройки Windows) - только те, что в моем приложении.
Ответы
Ответ 1
Шаблон ScrollBar
запрашивает системные параметры для определения его ширины/высоты (в зависимости от ориентации). Поэтому вы можете переопределить эти параметры:
<ScrollViewer>
<ScrollViewer.Resources>
<sys:Double x:Key="{x:Static SystemParameters.VerticalScrollBarWidthKey}">100</sys:Double>
</ScrollViewer.Resources>
</ScrollViewer>
Ответ 2
Вот решение XAML:
<Style x:Key="{x:Type ScrollBar}" TargetType="{x:Type ScrollBar}">
<Setter Property="Stylus.IsFlicksEnabled" Value="True" />
<Style.Triggers>
<Trigger Property="Orientation" Value="Horizontal">
<Setter Property="Height" Value="40" />
<Setter Property="MinHeight" Value="40" />
</Trigger>
<Trigger Property="Orientation" Value="Vertical">
<Setter Property="Width" Value="40" />
<Setter Property="MinWidth" Value="40" />
</Trigger>
</Style.Triggers>
</Style>
Ответ 3
Ответ Kent также может быть применен для легко всех полос прокрутки в вашем приложении, поместив их в ресурсы App.xaml
и указав также горизонтальный ключ высоты.
<Application
xmlns:sys="clr-namespace:System;assembly=mscorlib"
...
>
<Application.Resources>
<sys:Double x:Key="{x:Static SystemParameters.VerticalScrollBarWidthKey}">50</sys:Double>
<sys:Double x:Key="{x:Static SystemParameters.HorizontalScrollBarHeightKey}">50</sys:Double>
</Application.Resources>
</Application>