UWP 将ScrollViewer滚动到ScrollViewer中的控件的位置

来源:互联网 发布:金十数据官网财经报告 编辑:程序博客网 时间:2024/05/16 15:48

在手机中点击文本框输入内容时,经常会遇到文本框本身被输入法挡住的问题,所以有必要在文本框获得焦点时,将其移到页面最上方显示

以垂直滚动为例子

public static void ScrollToElement(this Windows.UI.Xaml.Controls.ScrollViewer scrollViewer, UIElement uiElement){    var transform = uiElement.TransformToVisual(scrollViewer);    var point = transform.TransformPoint(new Point(0, 0));    if (point.Y != 0)    {        var y = point.Y + scrollViewer.VerticalOffset;        scrollViewer.ChangeView(null, y, null, true);    }}

这段代码是对ScrollViewer类型扩展了一个方法,它会将scrollViewer垂直滚动到uiElement出现在ScrollViewer的可见的最顶部

其中,通过transform获取到的是将uiElement从scrollViewer当前的垂直位置移动到顶端的距离,所以在ChangeView中需将这个Y与垂直位移相加

0 0
原创粉丝点击