winui3开发笔记(七)滚动条自动滚到底部

使用的控件是ScrollViewer

  1. 参考官网给出的方法: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,跟前端的设置的属性都没有关系,大功告成!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值