私は小さなデバイスのタッチスクリーンで作業していますが、スクロールバーのカスタム幅は良くありません。私の要件の1つは、すべてが指のジェスチャーで実行可能である必要があるということです。
WPF ScrollViewerスクロールバーの幅を設定するにはどうすればよいですか?
デバイス上のすべてのスクロールバーの幅を変更したくないことに注意してください(Windows設定から実行可能)-アプリ内のスクロールバーのみです。
私は小さなデバイスのタッチスクリーンで作業していますが、スクロールバーのカスタム幅は良くありません。私の要件の1つは、すべてが指のジェスチャーで実行可能である必要があるということです。
WPF ScrollViewerスクロールバーの幅を設定するにはどうすればよいですか?
デバイス上のすべてのスクロールバーの幅を変更したくないことに注意してください(Windows設定から実行可能)-アプリ内のスクロールバーのみです。
テンプレートは、システム パラメーターに到達して、ScrollBar
その幅/高さを決定します (向きによって異なります)。したがって、これらのパラメーターをオーバーライドできます。
<ScrollViewer>
<ScrollViewer.Resources>
<sys:Double x:Key="{x:Static SystemParameters.VerticalScrollBarWidthKey}">100</sys:Double>
</ScrollViewer.Resources>
</ScrollViewer>
ケントの答えは、リソースに配置し、水平高さキーも指定することで、アプリケーション内のすべてのスクロールバーに簡単に適用できます。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>
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>
また、XAML を使用したくない場合は、Application
のコンストラクターで実行できます。
using System.Windows;
public partial class App
{
public App()
{
Resources.Add(SystemParameters.VerticalScrollBarWidthKey, 50d);
Resources.Add(SystemParameters.HorizontalScrollBarHeightKey, 50d);
}
}