我在WPF中使用ScrollView,我的应用程序允许用户单击按钮,然后它将自动滚动滚动视图,我在按钮单击事件中使用ScrollToVerticalOffset(),但scrollview没有更改任何内容.
我在互联网上搜索过这个问题,但到目前为止我还不能解决它.
还有一个问题:ScrollToVerticalOffset()取一个double作为参数,它可能会滚动到特殊像素,有没有办法滚动到n个项目(不是像素)?
这是我的代码
<ScrollViewer x:Name="scrollViewerChannelBtns" Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center"
Background="Transparent" VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Hidden"
CanContentScroll="True" ScrollChanged="ScrollViewerChannelBtns_ScrollChanged">
<StackPanel x:Name="channelBtns" Orientation="Vertical">
<ItemsControl x:Name="channelBtnItems" ItemsSource="{Binding}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<ToggleButton x:Name="tgbChannelName" Width="{Binding Path=ChannelNameBtnWidth}" Height="{Binding Path=ChannelNameBtnHeight}" HorizontalAlignment="Left" VerticalAlignment="Center" IsChecked="{Binding Path=IsChecked, Mode=TwoWay}" Content="{Binding Path=ChannelName}" Tag="{Binding Path=Index}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)
C#代码
//The button click event handled
private void BtnScrollDownClicked(object sender, RoutedEventArgs e)
{ scrollViewerChannelBtns.ScrollToVerticalOffset(scrollViewerChannelBtns.VerticalOffset + 50);
}
private void BtnScrollUpClicked(object sender, RoutedEventArgs e)
{ scrollViewerChannelBtns.ScrollToVerticalOffset(scrollViewerChannelBtns.VerticalOffset - 50);
}
Run Code Online (Sandbox Code Playgroud)
非常感谢,T&T
Teo*_*ahi 10
我的工作开始了;
ScrollViewer.UpdateLayout();
ScrollViewer.ScrollToVerticalOffset(outPoint.Y);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5656 次 |
| 最近记录: |