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

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

以垂直滚动为例子

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与垂直位移相加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值