如何解决如何以编程方式将ScrollViewer滚动到uwp xaml中的顶部?
我已将ScrollViewer应用于用户控件,如果高度超过,该控件将自动滚动到底部。 现在,我的页面正在关闭,滚动条位于底部,当我重新打开页面时,滚动条仍位于底部。
每次打开页面时如何将滚动条重置为顶部。
<ScrollViewer x:Name="myScrollViewer">
<Grid Margin="0,40">
</Grid>
</ScrollViewer>
解决方法
ScrollViewer
提供了 ChangeView 方法,该方法可用于调整滚动状态:
// scroll to top
myScrollViewer.ChangeView(0,1);
您可以在页面加载后调用此方法,以将ScrollViewer
滚动到顶部。
更新
如果要访问ViewModel
中页面上的控件,有两种方法:
1。公共控制
此方法意味着您需要创建一个公共页面实例,然后在XAML中公开该控件,如下所示:
ScrollViewerPage.xaml
<ScrollViewer x:Name="myScrollViewer" x:FieldModifier="public">
<!-- your code -->
</ScrollViewer>
ScrollViewerPage.xaml.cs
public sealed partial class ScrollViewerPage : Page
{
public static ScrollViewerPage Current;
public ScrollViewerPage()
{
this.InitializeComponent();
Current = this;
}
}
页面加载后,您可以使用此代码访问ScrollViewer
。
ScrollViewerPage.Current.myScrollViewer.ChangeView(0,1);
2。在ViewModel中定义控件变量/属性
您可以在ScrollViewer
中定义类型为ViewModel
的变量或属性(公共),然后在页面加载时为该属性分配一个值,然后可以访问{{1 }},方法是访问ScrollViewer
中的属性。
MyViewModel.cs
ViewModel
ScrollViewerPage.xaml.cs
public class MyViewModel
{
public ScrollViewer MyScrollViewer { get; set; }
// Other code
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。