新闻详情

新闻详情

首页 / 资讯中心 / 详情

Windows-universal-samples 触控键盘(Touch Keyboard)UWP 示例详解:默认显示行为与编程控制

发布时间:2026/11/13 5:15:09来源:尧图网络
Windows-universal-samples 触控键盘(Touch Keyboard)UWP 示例详解:默认显示行为与编程控制
示例工程【免费下载链接】Windows-universal-samplesAPI samples for the Universal Windows Platform.项目地址https://gitcode.com/gh_mirrors/wi/Windows-universal-samples点击查看免费下载本指南以仓库中归档的 Touch Keyboard 示例 为线索系统讲解 UWP 应用中触控键盘输入面板 InputPane的默认显示规则、Showing/Hiding事件订阅以及TryShow()/TryHide()编程控制方法。通过阅读本文你将掌握触控键盘何时自动弹出、如何感知其显隐、如何主动接管显隐时机并能直接复刻该示例的三个核心场景。示例概述与场景总览Touch Keyboard 示例展示了 UWP 应用中触控键盘的两种核心能力默认显示行为与行为的自定义。官方描述为Shows both the default display behavior of the touch keyboard and how that behavior can be customized in a UWP app.从 SampleConfiguration.cpp 的场景注册表可以看到该示例由三个场景构成场景标题对应页面类核心关注点Display touch keyboard automaticallySDKTemplate.Scenario1_Launch默认自动显示行为Listen for Show/Hide eventsSDKTemplate.Scenario2_ShowHideEvents显隐事件订阅Programmatically Show/Hide the touch keyboardSDKTemplate.Scenario3_ShowHideMethods编程显隐控制Platform::ArrayScenario^ MainPage::scenariosInner ref new Platform::ArrayScenario { { Display touch keyboard automatically, SDKTemplate.Scenario1_Launch }, { Listen for Show/Hide events, SDKTemplate.Scenario2_ShowHideEvents }, { Programmatically Show/Hide\nthe touch keyboard, SDKTemplate.Scenario3_ShowHideMethods } };三个场景分别对应 README 中列出的四条能力XAML 文本控件TextBox、RichTextBox、PasswordBox默认显示触控键盘从 XAML 文本控件派生的控件默认同样显示触控键盘应用可以订阅触控键盘显示/隐藏的事件应用可以主动请求显示或隐藏触控键盘。系统要求依据 README 中 System requirements 一节本示例的运行环境要求为客户端ClientWindows 10服务器ServerWindows Server 2016 Technical Preview手机PhoneWindows 10但注意KeyboardEnabledTextBox在手机端不受支持详见下文说明另外需要强调两点前提Windows universal samples 需要Visual Studio进行编译、需要Windows 10才能运行示例中的 C 版本依赖 Windows 10 通用 SDK其 Package.appxmanifest 中声明了TargetDeviceFamily NameWindows.Universal MinVersion10.0.10240.0 MaxVersionTested10.0.18362.0即最低适配 Windows 10 10240RTM 版本实测兼容到 18362Windows 10 1903。构建与运行示例按照 README 的 Build the sample 与 Run the sample 两节操作步骤如下构建启动 Visual Studio选择File→Open→Project/Solution进入解压后示例目录中对应语言C / C# / JavaScript的子目录双击.sln解决方案文件本仓库中 C 版为 TouchKeyboard.sln按CtrlShiftB或选择Build→Build Solution完成编译。运行仅部署选择Build→Deploy Solution部署并调试运行按F5或选择Debug→Start Debugging不调试直接运行按CtrlF5或选择Debug→Start Without Debugging。场景一默认显示行为Scenario 1场景一的 XAML 页面位于 Scenario1_Launch.xaml对应后台代码 Scenario1_Launch.xaml.cpp仅完成页面初始化说明默认行为无需任何代码介入。页面中放置了三类控件来演示默认行为原生TextBox提示文字 The keyboard displays when you tap here.自定义控件local:CustomTextBox——从TextBox派生的控件证明派生自文本控件的类型同样继承默认触控键盘行为一个普通Button用于演示点击非文本区域时键盘隐藏。XAML 中的说明文字明确了默认规则当触摸或触笔将焦点设置到 XAML 文本控件如 TextBox、RichTextBox、PasswordBox或从文本控件派生的控件时触控键盘会显示。自动显示的两条硬性条件页面中特别以加粗列表形式给出了自动显示的前提条件这同样是 README 中 Note 段的核心内容未激活硬件键盘且满足以下任一条件2a. 设备处于平板模式Tablet mode或2b. 在Settings → Devices → Typing中开启了 Show the touch keyboard when not in tablet mode and theres no keyboard attached非平板模式下且无外接键盘时显示触控键盘。换言之如果外接硬件键盘处于激活状态或设备处于桌面模式且上述设置项为 Off触控键盘不会自动弹出。这是开发者在真机调试时最常见的键盘不出来原因属于系统级策略而非应用缺陷。场景二监听 Showing / Hiding 事件Scenario 2场景二展示如何感知触控键盘的显隐状态。页面 Scenario2_ShowHideEvents.xaml 包含一个用于唤起键盘的TextBox、一个普通按钮以及一个文本Runx:NameLastInputPaneEventRun用于显示最近一次事件。后台逻辑 Scenario2_ShowHideEvents.xaml.cpp 完整演示了InputPane事件的生命周期管理void Scenario2_ShowHideEvents::OnNavigatedTo(NavigationEventArgs^ e) { auto inputPane InputPane::GetForCurrentView(); // Subscribe to Showing/Hiding events showingEventToken inputPane-Showing ref new TypedEventHandlerInputPane^, InputPaneVisibilityEventArgs^(this, Scenario2_ShowHideEvents::OnShowing); hidingEventToken inputPane-Hiding ref new TypedEventHandlerInputPane^, InputPaneVisibilityEventArgs^(this, Scenario2_ShowHideEvents::OnHiding); } void Scenario2_ShowHideEvents::OnNavigatedFrom(NavigationEventArgs^ e) { auto inputPane Windows::UI::ViewManagement::InputPane::GetForCurrentView(); // Unsubscribe from Showing/Hiding events inputPane-Showing - showingEventToken; inputPane-Hiding - hidingEventToken; }实现要点API 入口Windows::UI::ViewManagement::InputPane::GetForCurrentView()返回当前视图关联的输入面板实例全程无需获取页面控件事件类型Showing与Hiding事件参数为InputPaneVisibilityEventArgs本例未使用参数内容仅用于区分事件来源订阅/退订配对返回事件令牌token在OnNavigatedFrom中用-退订避免页面导航离开后继续收到事件造成泄漏或空指针访问——这是 UWP C/CX 事件处理的推荐模式事件处理器中仅更新LastInputPaneEventRun-Text为LShowing或LHiding页面据此实时回显最后一次键盘显隐动作。场景三TryShow / TryHide 编程控制Scenario 3场景三演示应用主动接管键盘显隐解决键盘遮挡内容的经典问题。页面 Scenario3_ShowHideMethods.xaml 定义了一个名为FadeOutResults的 Storyboard对结果文本ResultsTextBlock的Opacity执行 0→1 的DoubleAnimation时长 1 秒、AutoReverseTrue、QuarticEase EaseOut 缓动动画完成后触发OnFadeOutCompleted。后台逻辑 Scenario3_ShowHideMethods.xaml.cpp 的核心代码如下void Scenario3_ShowHideMethods::WordListBox_OnKeyUp(Object^ /*sender*/, KeyRoutedEventArgs^ e) { if (e-Key Windows::System::VirtualKey::Enter) { String^ text WordListBox-Text; if (!text-IsEmpty()) { InputPane::GetForCurrentView()-TryHide(); ResultsTextBlock-Text text; FadeOutResults-Begin(); } } } void Scenario3_ShowHideMethods::OnFadeOutCompleted(Object^ /*sender*/, Object^ /*e*/) { ResultsTextBlock-Text L; InputPane::GetForCurrentView()-TryShow(); }工作流程与设计意图用户在文本框中输入并按下Enter通过KeyDown事件WordListBox_OnKeyUp捕获VirtualKey::Enter调用InputPane::GetForCurrentView()-TryHide()立即隐藏触控键盘避免其遮挡下方将要显示的大字号结果文本FontSize150将输入内容写入结果文本并播放淡入动画动画结束后OnFadeOutCompleted清空结果文本并调用TryShow()重新唤起触控键盘恢复输入流程。这里体现了两个核心 API 的语义TryHide()尝试隐藏输入面板返回bool表示是否成功执行TryShow()尝试显示输入面板同样返回bool。与事件订阅不同这两个方法允许应用在任意时机不限于用户触摸文本控件时决定键盘的显隐典型场景即本示例演示的提交输入时收起键盘、展示结果后重新唤出。页面还保留了OnNavigatedFrom中对FadeOutResults-Stop()的调用防止页面导航离开时动画仍在运行。扩展阅读CustomEditControl 示例README 中专门提示Custom text edit control sample展示了如何在自定义文本编辑控件中以编程方式管理触控键盘的可见性。该示例位于 Samples/CustomEditControl 目录下与本示例形成互补本示例使用标准的 XAML 文本控件演示默认行为与事件/方法控制而 CustomEditControl 则将同样的InputPane控制逻辑下沉到自定义控件内部实现。关键结论默认行为零代码标准 XAML 文本控件及其派生控件的触控键盘唤起由系统自动完成前提是未激活硬件键盘且满足平板模式或系统设置项开启事件驱动感知通过InputPane::GetForCurrentView()订阅Showing/Hiding事件即可获知键盘显隐注意在页面退出时退订编程控制兜底TryShow()/TryHide()让应用在需要时主动收起或唤起键盘是处理键盘遮挡内容提交后收起输入法等交互的推荐手段运行前提Windows 10 Visual StudioC 版本对应 SDK 版本要求见 Package.appxmanifest。如需在自有 UWP 项目中复现可直接参考本仓库 archived/TouchKeyboard/cpp 目录下的三组 XAML/代码文件它们是理解Windows.UI.ViewManagement.InputPane体系最简练的入门范例。赞分享示例工程【免费下载链接】Windows-universal-samplesAPI samples for the Universal Windows Platform.项目地址https://gitcode.com/gh_mirrors/wi/Windows-universal-samples点击查看免费下载相关推荐Windows-universal-samples 之 TouchKeyboardUWP 触摸键盘默认行为与程序化控制实战指南Windows universal samples 之 TouchKeyboardUWP 触摸键盘默认行为与程序化控制实战指南 导读 本文基于 Windows示例工程UWP Toast、LiveTile 与 Badge 通知机制实战Windows-universal-samples Notifications 示例详解UWP Toast、LiveTile 与 Badge 通知机制实战Windows universal samples Notifications 示例详解 W示例工程Windows-universal-samples 之 MessageDialog 示例UWP 消息对话框的命令定制、默认按钮与回调机制全解析Windows universal samples 之 MessageDialog 示例UWP 消息对话框的命令定制、默认按钮与回调机制全解析 本文以 Win示例工程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/13 0:43:49

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/12 23:59:09

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/12 9:50:02

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/12 9:25:38

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/12 15:57:44

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/13 0:02:27

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉