2011-10-24 3 views
0

私のコードでスクロールバーのサムの前景を変更したいと思います。wpfのスクロールバーのサムの前景を変更するにはどうすればよいですか?

私は私の親指の背景を変更するスタイルを適用している、しかし、私は、実行時に

前景画像を変更するようでした。ここにスクロールバー用の私のスタイルコードです。

<ControlTemplate x:Key="MyScrollBar" TargetType="{x:Type ScrollBar}"> 
      <Grid> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="178"/> 
       </Grid.ColumnDefinitions> 
       <Grid.RowDefinitions> 
        <RowDefinition Height="12" /> 
        <RowDefinition Height="*"/> 
        <RowDefinition Height="12" /> 
       </Grid.RowDefinitions> 
       <Border Grid.Row="1" CornerRadius="2" BorderThickness="0" > 
        <Border.Background> 
         <ImageBrush ImageSource="/HyperVibe;component/Images/Grey_Slider_Background.png" /> 
        </Border.Background> 
       </Border> 
       <RepeatButton Grid.Row="0" Command="ScrollBar.LineUpCommand" Content=" ^" /> 

       <!--IsDirectionReversed set to true draws a ScrollBar with a 
        Track whose lowest value is at the bottom. 
        The default orientation of a ScrollBar is for the Track 
        values to decrease from top to bottom.--> 
       <Track Grid.Row="1" Name="PART_Track" IsDirectionReversed="true"> 
        <Track.Thumb> 
         <Thumb BorderThickness="1" DataContext="{Binding}" > 
          <Thumb.OpacityMask> 
           <ImageBrush ImageSource="/HyperVibe;component/Images/Green%20Slider.png" /> 
          </Thumb.OpacityMask> 
          <Thumb.Background> 
           <ImageBrush ImageSource="/HyperVibe;component/Images/Green%20Slider.png" /> 
          </Thumb.Background> 
         </Thumb> 
        </Track.Thumb> 
       </Track> 
       <RepeatButton Grid.Row="2" Command="ScrollBar.LineDownCommand" Content=" v" /> 
      </Grid> 
     </ControlTemplate> 

ご協力いただければ幸いです。あなたがC#コードで、次のDynamicResource、上記のようにコントロールテンプレートをロードして実行することができれば

よろしく、 〜Anup

答えて

1

は試してみてください。静的リソースとしてロードすると、そのリソースをシールするときに編集することはできません。

ControlTemplate myCtrlTpl = (ControlTemplate) FindResource("MyScrollBar"); 
Trigger tgrIsMouseOver = new Trigger { Property = Thumb.IsMouseOverProperty, Value = true }; 
Trigger tgrIsMouseNotOver = new Trigger { Property = Thumb.IsMouseOverProperty, Value = false }; 

ImageBrush mImgBrhDefault = (Create what ever brush either imagebrush or solidcolorbrush) 
ImageBrush mImgBrhHighlight = (Create what ever brush either imagebrush or solidcolorbrush) 

tgrIsMouseOver.Setters.Add(new Setter(Thumb.BackgroundProperty, mImgBrhHighlight)); 
tgrIsMouseNotOver.Setters.Add(new Setter(Thumb.BackgroundProperty, mImgBrhDefault)); 
関連する問題