Comment augmenter la largeur de scrollbar dans WPF ScrollViewer?
je travaille sur un écran tactile sur un petit appareil et la largeur personnalisée de la barre de défilement n'est pas bonne car l'une de mes exigences est que tout doit être faisable par des gestes du doigt.
comment définir la largeur du ScrollViewer scrollbar WPF?
notez que je ne veux pas changer la largeur de toutes les barres de défilement sur l'appareil (faisable via les paramètres de windows) - seulement celles de mon application.
3 réponses
ScrollBar
template tend vers les paramètres du système pour déterminer sa largeur / hauteur (selon l'orientation). Par conséquent, vous pouvez outrepasser ces paramètres:
<ScrollViewer>
<ScrollViewer.Resources>
<sys:Double x:Key="{x:Static SystemParameters.VerticalScrollBarWidthKey}">100</sys:Double>
</ScrollViewer.Resources>
</ScrollViewer>
Voici une solution 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>
la réponse de Kent peut aussi être appliquée à easily scrollbars dans votre application en la plaçant dans votre App.xaml
ressources, et en spécifiant également la clé horizontale de hauteur.
<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>