【发布时间】:2014-06-24 08:16:54
【问题描述】:
我想根据条件更改应用程序中所有滚动条(箭头按钮和拇指)的大小。条件是主窗口的 ViewModel 中的布尔变量 (Settings.TouchScreenMode)。
我想用触发器来做,像这样:
<Style.Triggers>
<DataTrigger Binding="{Binding DataContext.Settings.TouchScreenMode,
RelativeSource={RelativeSource AncestorType=Window}}" Value="True">
<Setter Property="ArrowButtonWidth" Value="30" />
</DataTrigger>
</Style.Triggers>
我找到了一种设置 SystemParameters 的方法,但我不能在触发器中使用它,所以滚动条总是会改变,而不仅仅是当我的 bool-value 为 true 时:
<system:Double x:Key="{x:Static SystemParameters.HorizontalScrollBarHeightKey}">30</system:Double>
<system:Double x:Key="{x:Static SystemParameters.HorizontalScrollBarButtonWidthKey}">30</system:Double>
<system:Double x:Key="{x:Static SystemParameters.VerticalScrollBarWidthKey}">30</system:Double>
<system:Double x:Key="{x:Static SystemParameters.VerticalScrollBarButtonHeightKey}">30</system:Double>
有没有办法在不替换整个滚动条控件模板的情况下做到这一点?
【问题讨论】: