使用的控件是ScrollViewer
- 参考官网给出的方法:https://learn.microsoft.com/zh-cn/windows/apps/design/controls/scroll-controls?tabs=scrollviewer
private void ScrollBottomButton_Click(object sender, RoutedEventArgs e)
{
scrollViewer.ChangeView(
horizontalOffset: null,
verticalOffset: scrollViewer.ScrollableHeight,
zoomFactor: null);
}
自己定义的控件前端:
<ScrollViewer x:Name="scrollviewer1" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" Padding="0 0 0 30">
没有效果,打印出的控件属性中,关于Height的属性有以下几个:“
Debug.WriteLine(scrollviewer1.Height);
Debug.WriteLine(scrollviewer1.ScrollableHeight);
Debug.WriteLine(scrollviewer1.ActualHeight);
Debug.WriteLine(scrollviewer1.ExtentHeight);
Debug.WriteLine(scrollviewer1.ViewportHeight);
结果:NAN 0 0 0 0
而官网上前端定义的控件:
<ScrollView Width="500" Height="400">
<StackPanel>
<Button Width="200" Content="Button 1"/>
<Button Width="200" Content="Button 2"/>
<Button Width="200" Content="Button 3"/>
<Button Width="200" Content="Button 4"/>
<Button Width="200" Content="Button 5"/>
</StackPanel>
</ScrollView>
所以尝试一下自定义高度,官网上的例子是可以跑的
官网上点击按钮之后有效,但是如果InitializeComponent之后直接执行就没有效果。
所以写在Loaded函数里面就OK,跟前端的设置的属性都没有关系,大功告成!