Windows 10 软键盘移动高度
Windows 10 Mobile height of soft keyboard
有谁知道在显示软键盘时如何移动页面内容(可能设置相对边距或类似的东西)。
这是我的应用程序的示例页面。
所以我希望当用户开始在文本框中输入 phone 数字时,底部按钮将显示在软键盘上方。结果我想要这样的东西:
P.S:抱歉屏幕上显示俄语。
这有点棘手,但正如我所尝试的那样应该可行。我使用 InputPane 的 显示和隐藏事件来更改按钮的转换转换。在页面的构造函数中,我添加了这样的代码:
Windows.UI.ViewManagement.InputPane.GetForCurrentView().Showing += (s, args) =>
{
GeneralTransform gt = loginButton.TransformToVisual(this);
Point buttonPoint = gt.TransformPoint(new Point(0, loginButton.RenderSize.Height - 1));
var trans = new TranslateTransform { Y = -(buttonPoint.Y - args.OccludedRect.Top) };
loginButton.RenderTransform = trans;
args.EnsuredFocusedElementInView = true;
};
Windows.UI.ViewManagement.InputPane.GetForCurrentView().Hiding += (s, args) =>
{
var trans = new TranslateTransform { Y = 0 };
loginButton.RenderTransform = trans;
args.EnsuredFocusedElementInView = false;
};
你只需要记住 InputPane 是针对整个应用程序的——一旦你离开页面,你可能必须取消订阅这些事件,否则你可能会得到异常.
有谁知道在显示软键盘时如何移动页面内容(可能设置相对边距或类似的东西)。
这是我的应用程序的示例页面。
所以我希望当用户开始在文本框中输入 phone 数字时,底部按钮将显示在软键盘上方。结果我想要这样的东西:
P.S:抱歉屏幕上显示俄语。
这有点棘手,但正如我所尝试的那样应该可行。我使用 InputPane 的 显示和隐藏事件来更改按钮的转换转换。在页面的构造函数中,我添加了这样的代码:
Windows.UI.ViewManagement.InputPane.GetForCurrentView().Showing += (s, args) =>
{
GeneralTransform gt = loginButton.TransformToVisual(this);
Point buttonPoint = gt.TransformPoint(new Point(0, loginButton.RenderSize.Height - 1));
var trans = new TranslateTransform { Y = -(buttonPoint.Y - args.OccludedRect.Top) };
loginButton.RenderTransform = trans;
args.EnsuredFocusedElementInView = true;
};
Windows.UI.ViewManagement.InputPane.GetForCurrentView().Hiding += (s, args) =>
{
var trans = new TranslateTransform { Y = 0 };
loginButton.RenderTransform = trans;
args.EnsuredFocusedElementInView = false;
};
你只需要记住 InputPane 是针对整个应用程序的——一旦你离开页面,你可能必须取消订阅这些事件,否则你可能会得到异常.