如何在uwp-xaml中用程序将ScrollViewer滚动到顶部



我已经将ScrollViewer应用于一个用户控件,如果高度超过,该控件会自动滚动到底部。现在我的页面正在关闭,滚动条位于底部位置,当我重新打开页面时,它仍保持在底部。

如何在每次打开该页面时将滚动条重置为顶部。

<ScrollViewer x:Name="myScrollViewer">

<Grid Margin="0,0,0,40">
</Grid>
</ScrollViewer>

ScrollViewer提供ChangeView方法,可用于调整滚动状态:

// scroll to top
myScrollViewer.ChangeView(0, 0, 1);

您可以在页面加载后调用此方法,将ScrollViewer滚动到顶部。


更新

如果您想访问ViewModel中页面上的控件,有两种方法:

1.公共控制

此方法意味着您需要创建一个公共页面实例,然后在XAML中公开控件,如下所示:

滚动查看器页面.xaml

<ScrollViewer x:Name="myScrollViewer" x:FieldModifier="public">
<!-- your code -->
</ScrollViewer>

滚动查看器页面.xaml.cs

public sealed partial class ScrollViewerPage : Page
{
public static ScrollViewerPage Current;
public ScrollViewerPage()
{
this.InitializeComponent();
Current = this;
}
}

页面加载后,您可以使用此代码访问ScrollViewer

ScrollViewerPage.Current.myScrollViewer.ChangeView(0, 0, 1);

2.在ViewModel中定义控制变量/属性

可以在ViewModel中定义类型为ScrollViewer的变量或属性(公共(,然后在加载页面时为该属性赋值,然后可以通过访问ViewModel中的属性来访问ScrollViewer

MyViewModel.cs

public class MyViewModel
{
public ScrollViewer MyScrollViewer { get; set; }
// Other code
}

滚动查看器页面.xaml.cs

public ScrollViewerPage()
{
this.InitializeComponent();
var vm = new MyViewModel();
vm.MyScrollViewer = myScrollViewer;
}

最新更新