gpt4 book ai didi

c# - 触摸键盘出现时 WPF 应用程序中 Windows 的高度

转载 作者:可可西里 更新时间:2023-11-01 12:40:29 24 4
gpt4 key购买 nike

我正在为 Windows 10 编写“可触摸”WPF 应用程序。想象一个包含以下网格的窗口:

<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<TextBox Text="dsdsd"></TextBox>
<TextBox Text="unten" Grid.Row="2" InputScope="Number"></TextBox>
</Grid>

如果我的应用程序至少使用 .NET 4.6.2 编译并且它的窗口最大化,我可以触摸下方的文本框并打开触摸键盘。但是我看不到控件,因为键盘隐藏了它。此行为与 Windows 8.x 不同,在 Windows 8.x 中,当键盘打开时渲染 Canvas 的大小会减小。在 Windows 开始栏搜索字段中执行相同操作时,该字段会向上移动,因此我可以看到输入字段。使用最大化的 explorer.exe 打开键盘时窗口变小。

如何在 WPF 应用程序中实现此行为?

干杯,曼纽尔

最佳答案

据我所知,如果您正确编写了 XAML,即使在窗口最大化时它也应该开箱即用,但我也遇到了这个问题并最终没有修复它(我本来想要,但高层管理人员决定不关心它)。

根据我的调查,微软似乎修复了 Windows 1903 中 Windows 对触摸键盘的 react 方式,而在 1809 和更早的版本中,Windows 不会调整大小 window 。您可以通过最大化资源管理器来测试这一点,并查看两个版本的 Windows 10 中发生了什么。

此外,如果您的应用已将 WindowStyle 设置为 None,它会阻止 Windows 调整窗口大小以保持控件可见。我在这里的回答中谈到了这一点:WindowStyle None and touch input .

也可以通过检测触摸键盘的存在和位置来手动重新定位您的控件,请查看来自 Microsoft 的示例:TouchKeyboardNotifier

如果一切都失败了,我认为 TouchKeyboardNotifier 示例代码应该可以帮助您在不依赖 Windows 行为的情况下实现您需要的功能。

关于c# - 触摸键盘出现时 WPF 应用程序中 Windows 的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37417988/

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