2009-08-24 14 views
27

Pracuję nad ekranem dotykowym na małym urządzeniu, a niestandardowa szerokość paska przewijania nie jest dobra, ponieważ jednym z moich wymagań jest to, że wszystko musi być wykonalne gestami palców.Jak zwiększyć szerokość paska przewijania w przeglądarce przewijania WPF?

Jak ustawić szerokość paska przewijania ScrollViewer WPF?

Pamiętaj, że nie chcę zmieniać szerokości wszystkich pasków przewijania na urządzeniu (można to zrobić przy użyciu ustawień systemu Windows) - tylko te w mojej aplikacji.

Odpowiedz

45

Szablon ScrollBar dociera do parametrów systemu, aby określić jego szerokość/wysokość (w zależności od orientacji). Dlatego można zastąpić te parametry:

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

dzięki - wygląda na to, czego potrzebuję! Mam przeglądarkę na stronie - kiedy próbuję zastosować twoją sugestię, otrzymuję sys: Podwójna nie znaleziono -> jakaś wskazówka dlaczego? niezbyt dobrze znany z WPF – JohnIdol

+9

Musisz mapować przestrzeń nazw sys do System w mscorlib jak poniżej: xmlns: sys = "clr-namespace: System; assembly = mscorlib" –

+0

dzięki! perfect now – JohnIdol

18

Oto rozwiązanie 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

O czym jest "IsFlicksEnabled"? –

+1

IsFlicksEnabled jest związany z tym, czy może odpowiadać na gesty używane w konfiguracji ekranu dotykowego: https://msdn.microsoft.com/en-us/library/system.windows.input.stylus.isflicksenabled(v=vs.100) .aspx –

16

odpowiedź Kent może być również stosowany do łatwo wszystkie pasków przewijania w aplikacji poprzez umieszczenie go w swoim App.xaml zasobów , a także poprzez określenie wysokości poziomej.

<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> 
Powiązane problemy