私は小さなデバイスのタッチスクリーンで作業していますが、私の要求の1つはすべてを指のジェスチャーで実行できる必要があるということなので、スクロールバーのカスタム幅は適切ではありません。
WPF ScrollViewerスクロールバーの幅を設定するにはどうすればよいですか?
デバイスのすべてのスクロールバーの幅を変更したくないことに注意してください(Windowsの設定から実行可能)-アプリ内のスクロールバーのみ。
ScrollBar
テンプレートは、(向きに応じて)その幅/高さを決定するためのシステムパラメータを取得します。したがって、これらのパラメーターをオーバーライドできます。
<ScrollViewer>
<ScrollViewer.Resources>
<sys:Double x:Key="{x:Static SystemParameters.VerticalScrollBarWidthKey}">100</sys:Double>
</ScrollViewer.Resources>
</ScrollViewer>
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>
ケントの回答は、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>