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.

29
demandé sur rae1 2009-08-24 13:04:52

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>
49
répondu Kent Boogaart 2011-09-27 15:06:21

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>
18
répondu Kulvir 2012-08-15 17:07:17

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>
18
répondu DuckMaestro 2013-09-02 00:27:13