本文将告诉大家如何在 WPF 里面编写一个简易输入法软件,让这个输入法软件支持插入 Latex 格式的公式到 Word 内。核心原理是使用 Word 的快捷键插入公式编辑器,再通过剪贴板输入 Latex 格式的公式内容,再输入回车作为 Word 公式
软件的界面效果如下:
运行效果如下:
本文以下为演示应用,没有包含从用户输入生成 Latex 格式的公式,仅仅只包含核心的如何在 Word 插入公式部分
本文的核心实现逻辑是根据 WPF 拼音输入法 实现的,只是有所不同的是没有进行键盘钩子,而是代替为手动点击按钮
点击发送按钮将 Latex 公式输入到 Word 里作为 Word 公式,其核心的方法就是使用 Word 的快捷键插入公式编辑器,再通过剪贴板输入 Latex 格式的公式内容,再输入回车作为 Word 公式。按钮的点击的实现代码如下
上文这里固定发送的是 a^2+b^2=c^2
公式,大家可以根据需求自行替换为其他公式
以下为整个项目的详细实现方法
先创建一个 .NET 9 的 WPF 项目,创建之后记得勾选 WinForms 引用,如不知道在哪勾选,可以双击项目文件,将 csproj 项目文件替换为如下代码
以上代码里面的 <UseWindowsForms>True</UseWindowsForms>
就是用来添加对 WinForms 的引用。如果大家看了以上配置还是不知道如何做,可以在本文末尾找到本文所有代码的下载方法
接着打开 MainWindow.xaml 文件,写一个固定且简单的输入法界面
以上界面固定了一个输入法候选公式,和一个按钮
继续编辑 MainWindow.xaml 文件,设置一些窗口属性
按钮点击的 SendButton_OnClick
方法的实现已经在上文告诉大家
作为一个输入法,不应该让窗口获取焦点,否则将会抢走应用的焦点。按照 .NET/C# 使窗口永不激活(No Activate 永不获得焦点) - walterlv 博客提供的方法,在 MainWindow.xaml.cs 配置让窗口不获取焦点
整个 MainWindow.xaml.cs 的核心代码如下
本文代码放在 github 和 gitee 上,可以使用如下命令行拉取代码。我整个代码仓库比较庞大,使用以下命令行可以进行部分拉取,拉取速度比较快
先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文的代码
以上使用的是国内的 gitee 的源,如果 gitee 不能访问,请替换为 github 的源。请在命令行继续输入以下代码,将 gitee 源换成 github 源进行拉取代码。如果依然拉取不到代码,可以发邮件向我要代码
获取代码之后,进入 WPFDemo/QarchananaFeweajeka 文件夹,即可获取到源代码
打开 QarchananaFeweajeka.sln 文件,理论上就可以按下 F5 让 VisualStudio 构建且运行。试试新建一个 Word 文档,进入输入状态,然后点击运行起来的输入法程序的发送按钮。预计就可以看到在 Word 输入了一段公式
更多技术博客,请参阅 博客导航
原文链接: http://blog.lindexi.com/post/WPF-%E4%BD%BF%E7%94%A8%E5%BF%AB%E6%8D%B7%E9%94%AE%E6%96%B9%E5%BC%8F%E5%88%B6%E4%BD%9C%E7%AE%80%E6%98%93%E7%9A%84-Word-%E4%B8%8A%E7%9A%84-Latex-%E8%BE%93%E5%85%A5%E6%B3%95
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。
欢迎转载、使用、重新发布,但务必保留文章署名 林德熙 (包含链接: https://blog.lindexi.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我 联系。