首页新闻找找看学习计划

WPF libstbox滚动

0
悬赏园豆:30 [已解决问题] 解决于 2012-04-19 13:59

在ListBox属性里我使用

ScrollViewer.HorizontalScrollBarVisibility="Disabled"
ScrollViewer.VerticalScrollBarVisibility="Disabled"

隐藏了滚动条,然后使用两个Button来实现ListBox的滚动,那我要在Button里怎么写呢?

还有怎么判断Listbox滚动条的起始和到底了?

雨逸凡尘的主页 雨逸凡尘 | 初学一级 | 园豆:7
提问于:2012-04-17 09:06
< >
分享
最佳答案
1

别用ListBox做吧,不好做,你用StackPanel做,设置StackPanel的Orientation="Horizontal"属性,这样的话内容超出的时候不会显示出来,然后再StackPanel里放一个Canvas,在Canvas里放你需要放的东西,然后用两个按钮来控制Canvas在StackPanel里的位置实现滚动,效果很好。

收获园豆:30
路晚歌 | 初学一级 |园豆:3 | 2012-04-19 13:59
其他回答(2)
0

关注。。。

KivenRo | 园豆:1722 (小虾三级) | 2012-04-17 09:26

其实以“关注”作为答案是很不好的一种做法,您觉得呢?

支持(0) 反对(0) zsounder | 园豆:2819 (老鸟四级) | 2012-04-17 09:32
0
<ListBoxScrollViewer.ScrollChanged="ListBox_ScrollChanged"
         
ScrollViewer.VerticalScrollBarVisibility="Hidden"/>


privatevoidListBox_ScrollChanged(object sender,ScrollChangedEventArgs e)
{
   
ButtonScrollUp.Visibility=ButtonScrollDown.Visibility=
       
((ScrollViewer)e.OriginalSource).ScrollableHeight>0
           
?Visibility.Visible
           
:Visibility.Collapsed;
}

剩下的你自己试试吧,这个应该可以:
((ScrollViewer)e.OriginalSource).ScrollableHeight+=1;
悟行 | 园豆:12163 (专家六级) | 2012-04-17 09:44

((ScrollViewer)e.OriginalSource).ScrollableHeight+=1;

这个写在哪儿的,Button里面吗?

支持(0) 反对(0) 雨逸凡尘 | 园豆:7 (初学一级) | 2012-04-17 09:56

@雨逸凡尘: 是的,((ScrollViewer)e.OriginalSource).ScrollableHeight+=1;思路是这样的,如果不行,可以看一下别的属性,总之是有Height表示的属性。

支持(0) 反对(0) 悟行 | 园豆:12163 (专家六级) | 2012-04-17 10:02
((ScrollViewer)e.OriginalSource).ScrollableHeight+=1;这个我写在按钮点击事件里报错:

不能被分配属性或索引System.Windows.Controls.ScrollViewer.ScrollableWidth - 它是只读

支持(0) 反对(0) 雨逸凡尘 | 园豆:7 (初学一级) | 2012-04-17 10:02

@荒野的呼唤: 我是横向滚动的,是不是Width?

支持(0) 反对(0) 雨逸凡尘 | 园豆:7 (初学一级) | 2012-04-17 10:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册