我正在尝试更改AvalonEdit中滚动条的拇指颜色。我尝试了很多方法:
设置ScrollViewer的样式 - 很多例子,但我不能让它们中的大部分编译,当我这样做时它们不起作用。
使用FindTemplate并在运行时更改拇指颜色。适用于许多但不是所有情况。
我想要的只是改变拇指颜色。来吧WPF,给我一个骨头。
请有人让我摆脱痛苦并告诉我如何。
跟进:
通过更改默认的拇指样式,我能够获得我想要的大部分内容:
<UserControl.Resources>
<Style x:Key="{x:Type Thumb}"
TargetType="{x:Type Thumb}">
<Setter Property="Opacity" Value="0.1" />
</Style>
</UserControl.Resources>
但是,如果我尝试将控件模板添加到此样式,则它无效。每次我认为我理解WPF样式时,有些事情会让我相信我什么都不知道。
答案 0 :(得分:0)
基于此页面:msdn
你可以这样做:
<Style TargetType="{x:Type Thumb}" x:Key="ScrollBarThumb">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Thumb}">
<Border CornerRadius="2"
Background="Black"
BorderBrush="Red"
BorderThickness="1" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="ScrollBar">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ScrollBar}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition MaxHeight="18" />
<RowDefinition Height="0.00001*" />
<RowDefinition MaxHeight="18" />
</Grid.RowDefinitions>
<Border Grid.RowSpan="3" />
<RepeatButton Grid.Row="0"
Command="ScrollBar.LineUpCommand"
Content="M 0 4 L 8 4 L 4 0 Z" />
<Track x:Name="PART_Track" Grid.Row="1" IsDirectionReversed="true">
<Track.Thumb>
<Thumb Style="{StaticResource ScrollBarThumb}" Margin="1,0,1,0"/>
</Track.Thumb>
</Track>
<RepeatButton Grid.Row="3"
Command="ScrollBar.LineDownCommand"
Content="M 0 0 L 4 4 L 8 0 Z" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>