An easy way to customize a scrollbar for a control

If you want to customize a scrollbar for a control such as listbox as follows:

screenshot-1.jpg - Latest 11/Jan/13 3:11 PM - Rain Chen

You can define xaml as follows (wrap listbox with a scrollviewer):

<ScrollViewer Name="myScrollView" Grid.Row="0" VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Hidden" PreviewMouseWheel="OnWheelScroll">
        <ListBox Width="34" ScrollViewer.HorizontalScrollBarVisibility="Hidden" ScrollViewer.VerticalScrollBarVisibility="Hidden"</ListBox>
</ScrollViewer>
<Button Grid.Row="1" Name="btnScrollUp" Click="OnScrollUp" ">
        <Image Source="Resources/scrollup-arrow.png" Stretch="Uniform" StretchDirection="Both"></Image>
</Button>
<Button Grid.Row="2" Name="btnScrollDown" Click="OnScrollDown" >
        <Image Source="Resources/scrolldown-arrow.png" Stretch="Uniform" StretchDirection="Both"></Image>
</Button>

Then define event handler in xaml.cs as follows:

 private void OnScrollUp(object sender, RoutedEventArgs e)

 {
      myScrollView.LineUp();
}

 private void OnScrollDown(object sender, RoutedEventArgs e)
 {
      myScrollView.LineDown();
 }

 private void OnWheelScroll(object sender, MouseWheelEventArgs e) // Sometimes if we cannot scroll with mouse wheel, we need add this handler.
 {
      myScrollView.ScrollToVerticalOffset(e.Delta);
 }

Note:

Two buttons are up/down arrow for scrollbar.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值