别用ListBox做吧,不好做,你用StackPanel做,设置StackPanel的Orientation="Horizontal"属性,这样的话内容超出的时候不会显示出来,然后再StackPanel里放一个Canvas,在Canvas里放你需要放的东西,然后用两个按钮来控制Canvas在StackPanel里的位置实现滚动,效果很好。
关注。。。
其实以“关注”作为答案是很不好的一种做法,您觉得呢?
<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;
((ScrollViewer)e.OriginalSource).ScrollableHeight+=1;
这个写在哪儿的,Button里面吗?
@雨逸凡尘: 是的,((ScrollViewer)e.OriginalSource).ScrollableHeight+=1;思路是这样的,如果不行,可以看一下别的属性,总之是有Height表示的属性。
((ScrollViewer)e.OriginalSource).ScrollableHeight+=1;这个我写在按钮点击事件里报错:
不能被分配属性或索引“System.Windows.Controls.ScrollViewer.ScrollableWidth” - 它是只读
@荒野的呼唤: 我是横向滚动的,是不是Width?