2009-08-24 19 views
27

Estoy trabajando en una pantalla táctil en un dispositivo pequeño y el ancho personalizado de la barra de desplazamiento no es bueno ya que uno de mis requisitos es que todo debe ser posible mediante gestos con los dedos.¿Cómo aumentar el ancho de la barra de desplazamiento en WPF ScrollViewer?

¿Cómo puedo establecer el ancho de la barra de desplazamiento de WPF ScrollViewer?

Tenga en cuenta que no quiero cambiar el ancho de todas las barras de desplazamiento en el dispositivo (se puede hacer a través de la configuración de Windows), solo las de mi aplicación.

Respuesta

45

La plantilla ScrollBar busca los parámetros del sistema para determinar su ancho/alto (según la orientación). Por lo tanto, usted podrá modificar estos parámetros:

<ScrollViewer> 
    <ScrollViewer.Resources> 
     <sys:Double x:Key="{x:Static SystemParameters.VerticalScrollBarWidthKey}">100</sys:Double> 
    </ScrollViewer.Resources> 
</ScrollViewer> 
+0

gracias - parece lo que necesito! Tengo el scrollviewer en una página, cuando trato de aplicar tu sugerencia, obtengo un sys: No se encontró el doble, ¿hay alguna pista de por qué? no está realmente familiarizado con WPF – JohnIdol

+9

. Necesita asignar el espacio de nombres sys a System en mscorlib como este: xmlns: sys = "clr-namespace: System; assembly = mscorlib" –

+0

gracias! perfecto ahora – JohnIdol

18

Aquí es una solución 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

¿De qué se trata este "IsFlicksEnabled"? –

+1

IsFlicksEnabled relacionado con si puede responder a los gestos cuando se usa en una configuración de pantalla táctil: https://msdn.microsoft.com/en-us/library/system.windows.input.stylus.isflicksenabled(v=vs.100) .aspx –

16

respuesta de Kent también se puede aplicar a fácilmente todos barras de desplazamiento en su aplicación mediante la colocación en sus App.xaml recursos y especificando también la clave de altura horizontal.

<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> 
Cuestiones relacionadas