我有一个运行在Windows 8.1系统上的C#应用程序,该应用程序显示一个很大的文本框(几乎覆盖了整个页面;这是一款写作应用程序)。
当屏幕键盘弹出时,它会遮挡文本框的一半。我想调整文本框(或者整个页面)的大小,以便键盘不会遮挡住它。
我现在正在尝试使用静态InputPane并订阅其显示和隐藏事件来实现这一目标。然后,我尝试使用事件参数中提供的被遮挡矩形来更改我的文本框的边距。这种方法是可行的,但由于我的页面仍然是屏幕高度,因此它会将页面滚动到屏幕底部的一半处。
当屏幕键盘弹出时,它会遮挡文本框的一半。我想调整文本框(或者整个页面)的大小,以便键盘不会遮挡住它。
我现在正在尝试使用静态InputPane并订阅其显示和隐藏事件来实现这一目标。然后,我尝试使用事件参数中提供的被遮挡矩形来更改我的文本框的边距。这种方法是可行的,但由于我的页面仍然是屏幕高度,因此它会将页面滚动到屏幕底部的一半处。
public MainPage()
{
var inputPane = InputPane.GetForCurrentView();
inputPane.Showing += this.InputPaneShowing;
inputPane.Hiding += this.InputPaneHiding;
}
void InputPaneHiding(InputPane sender, InputPaneVisibilityEventArgs args)
{
this.EditBox.Margin = new Thickness();
}
private void InputPaneShowing(InputPane sender, InputPaneVisibilityEventArgs args)
{
this.EditBox.Margin = new Thickness(0, 0, 0, args.OccludedRect.Height);
}
在尝试这个时,我感觉这不是最理想的解决方案,但我没有更好的想法。理想情况下,我认为它应该像垂直分割一样,当您打开两个应用程序时,但是键盘位于底部,应用程序仅可用大小在键盘上方。
有任何想法这是否可能?
Margin
或直接设置其高度吗? - Rafael