Yoa*_*ein 7 c# wpf input winforms emoji
Windows 10 的最新主要更新“Fall Creators Update”(又名 RedStone3)添加了可在任何文本框中使用的系统范围表情符号弹出窗口的功能。
我正在尝试制作一个程序,当单击按钮时会启动相同的弹出表情符号窗口。正如在另一个关于类似主题的讨论中所建议的那样,我尝试使用InputSimulator项目。还有其他方法,正如这里建议的那样,但似乎模拟器很好地包装了它们。
我所做的只是创建一个新的小型 WPF 应用程序,其中有一个主窗口,其中包含一个 TextBox 和一个按钮。按下按钮将运行以下代码:
textBox.Focus()
new InputSimulator().Keyboard.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.OEM_PERIOD);
Run Code Online (Sandbox Code Playgroud)
这似乎没有影响!我也试过 OEM_1(这是“:;”键码)而不是 OEM_PERIOD,但仍然没有运气。问题是,LWIN 与另一个键(例如 VK_P)的任何其他组合都可以使用相同的模拟器代码。
如果我尝试按下真实键盘上的表情符号热键,在运行该代码后,第一次按下什么都不做(有时表情符号弹出窗口会显示半秒钟,然后立即消失),然后需要再次按顺序按下热键用于显示弹出窗口。这让我怀疑弹出窗口是否显示,仅在屏幕边界之外,或者等待另一个键盘事件发生/完成?
您需要处理所需的事件,然后首先处理Focus您的控件,然后使用CoreInputView.GetForCurrentView获取当前窗口的核心输入视图,然后调用其TryShow方法并传递CoreInputViewKind.Emoji给该方法。例如:
//using Windows.UI.ViewManagement.Core;\nprivate async void button1_Click(object sender, EventArgs e)\n{\n textBox1.Focus();\n CoreInputView.GetForCurrentView().TryShow(CoreInputViewKind.Emoji);\n}\nRun Code Online (Sandbox Code Playgroud)\n\n\n注意:对于Windows 窗体或WPF项目,在使用上述代码之前,您\n需要配置您的项目以便能够调用桌面\napps 中的 Windows 运行时\nAPI。
\n
解决方案资源管理器 \xe2\x86\x92 右键单击项目 \xe2\x86\x92 选择“编辑项目文件”。
\n将 的值更改TargetFramework为以下字符串之一并保存更改。
net5.0-windows10.0.17763.0:针对 Windows 10 版本 1809。net5.0-windows10.0.18362.0:针对 Windows 10 版本 1903。net5.0-windows10.0.19041.0:针对 Windows 10 版本 2004。例如:
\n<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">\n <PropertyGroup>\n <OutputType>WinExe</OutputType>\n <TargetFramework>net5.0-windows10.0.18362.0</TargetFramework>\n <UseWindowsForms>true</UseWindowsForms>\n </PropertyGroup>\n</Project>\nRun Code Online (Sandbox Code Playgroud)\n工具 \xe2\x86\x92 NuGet 包管理器 \xe2\x86\x92 包管理器设置 \xe2\x86\x92\n确保为默认包管理格式选择PackageReference。
\n解决方案资源管理器 \xe2\x86\x92 右键单击项目 \xe2\x86\x92 选择“管理 NuGet 包”。
\n找到Microsoft.Windows.SDK.Contracts包。在 NuGet 包管理器窗口的右侧窗格中,根据要定位的 Windows 10 版本选择所需的包版本,然后单击安装:
10.0.19041.xxxx:针对 Windows 10 版本 2004。10.0.18362.xxxx:针对 Windows 10 版本 1903。10.0.17763.xxxx:针对 Windows 10 版本 1809。10.0.17134.xxxx:针对 Windows 10 版本 1803。