2015-03-20 2 views
0

Я пытаюсь изменить цвет большого пальца полос прокрутки в AvalonEdit. Я пробовал несколько подходов:Как Стиль AvalonEdit ScrollBars

Стиль 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

Основываясь на этой странице: 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> 
+0

интересным, так, чтобы изменить шаблон большого пальца, вы должны изменить шаблон прокрутки. Я бы этого не ожидал. –