gpt4 book ai didi

c# - 当 Surface 键盘显示在 Windows 8 商店应用程序中时,弹出窗口不会向上移动

转载 作者:行者123 更新时间:2023-11-30 15:35:06 25 4
gpt4 key购买 nike

我有一个 Windows 应用商店应用程序,它要求用户通过大量文本框输入数据。

当屏幕底部附近的文本框获得焦点时,屏幕键盘会出现并将页面内容向上移动。这很棒,也是我想要的。

当我有一个弹出窗口时,我的问题就出现了。当我的弹出窗口出现时,它实际上是全屏的。弹出窗口的子窗口是一个用户控件,它上面也有很多文本框。选择页面底部附近的文本框之一时,会出现键盘,但屏幕不会向上移动,因此键盘会出现在所选文本框上方。

这是我用来显示弹出窗口的代码:

if (myPopup == null)
{
myPopup = new Popup();

myPopup.Child = new PopupFrom();

// open the Popup
myPopup.IsOpen = true;
}

我还在更新布局时手动调整弹出窗口的大小

private void popup_LayoutUpdated(object sender, object e)
{
if (Windows.UI.ViewManagement.ApplicationView.Value == Windows.UI.ViewManagement.ApplicationViewState.FullScreenLandscape)
{
popup.Width = 1280;
popup.Height = 680;
}
else
{
popup.Width = 680;
popup.Height = 1280;
}
}

所以我的问题是,当显示键盘并与弹出窗口底部附近的文本框之一重叠时,如何向上移动弹出窗口?

提前致谢。

我正在使用 C# 和 XAML 编写此 Windows 8 应用商店应用。

最佳答案

在我的应用程序中,我收听 InputPane显示/隐藏事件。这些事件告诉您键盘或其他输入设备何时显示/隐藏:

var pane = InputPane.GetForCurrentView();
pane.Showing += pane_Showing;
pane.Hiding += pane_Hiding;

在您的事件处理程序中,您可以使用 OccludedRect属性来确定输入区域(例如键盘)有多大。然后您可以移动弹出窗口,使其不覆盖此矩形。

关于c# - 当 Surface 键盘显示在 Windows 8 商店应用程序中时,弹出窗口不会向上移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15357976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com