【问题标题】:How to Style AvalonEdit ScrollBars如何设置 AvalonEdit 滚动条的样式
【发布时间】:2015-03-20 20:09:35
【问题描述】:

我正在尝试更改 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 样式时,都会发生一些事情让我相信我一无所知。

【问题讨论】:

    标签: wpf avalonedit


    【解决方案1】:

    基于此页面: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>
    

    【讨论】:

    • 有趣,所以要修改拇指模板,你必须修改滚动条模板。我没想到会这样。
    猜你喜欢
    • 1970-01-01
    • 2019-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-24
    • 2011-02-13
    • 1970-01-01
    • 2012-06-01
    相关资源
    最近更新 更多