# wpf-cs-manipulate-word-file **Repository Path**: zhuhezhang/wpf-cs-manipulate-word-file ## Basic Information - **Project Name**: wpf-cs-manipulate-word-file - **Description**: No description available - **Primary Language**: C# - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-06-03 - **Last Updated**: 2021-07-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README @[TOC](目录) # 1.题目 ## 1.1基本要求 操作WORD文件:使用MSWORD.OLB组件将RichTextBox中的文本保存为WORD格式文件。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210311000014972.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNzk0NjMz,size_16,color_FFFFFF,t_70#pic_center) ## 1.2 本人新增额外功能 1、RichTextBox的内容实现撤消、恢复、清空、添加图片的操作; 2、关闭、打开WORD格式文件; 3、显示正在打开/编辑的文件名; 4、自定义背景图; 5、快捷键点击按钮; 6、控件背景颜色透明化; 7、鼠标移动到/离开按钮上方,字体颜色变化; 8、分别利用WPF应用和Windows窗体应用实现这些功能(由于两者的设计思想基本一致,所以这里只介绍利用WPF应用实现的,但两者的源码都会和报告一起提交)。 # 2.窗体运行截图 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210311000006841.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNzk0NjMz,size_16,color_FFFFFF,t_70#pic_center) # 3.使用说明 利用Visual Stdio打开源码内的项目文件夹中的后缀为.lsn的文件即可开始使用。 打开窗体,RichTextBox富文本框会提示从此处开始输入信息,点击富文本框提示信息可以清除。输入信息过程中输入错误可以使用窗体上方的撤销、恢复、清空按钮进行操作,同时点击添加图片按钮弹出对话框选择任意图片文件即可导入富文本框。输入完成点击保存,弹出保存文件对话框,输入文件名点击确定即可保存文件,此时窗体会显示该文件名称。 点击关闭可以关闭该文件、清空富文本框的内容,正在编辑文件空。点击打开按钮会显示打开文件对话框,可以选择任意word文件打开并加载到富文本框,窗体显示该文件名。也可以编辑该文件再保存,也可以直接点击删除按钮删除该文件,同时富文本框清空、正在编辑文件空。 # 4.控件/组件 1、标签(System.Windows.Controls.Lable) 2、按钮(System.Windows.Controls.Button) 3、富文本框(System.Windows.Controls..RichTextBox) 4、网格(System.Windows.Controls..Grid) 5、定时器(System.Windows.Threading.DispatcherTimer) 6、打开文件对话框(System.Windows.Forms.OpenFileDialog) 7、保存文件对话框(System.Windows.Forms.SaveFileDialog) 8、消息框(System.Windows.Forms.MessageBox) 9、剪贴板(System.Windows.Forms.Clipboard) 10、文本范围(System.Windows.Documents.TextRange) 11、图像(System.Drawing.Image) 12、MSWORD.OLB(Microsoft.Office.Interop.Word) # 5.总体设计 窗体利用WPF应用实现,界面设计利用XAML(可扩展应用程序标记语言,Extensible Application Markup Language)实现,程序运行逻辑使用C#语言实现。首先利用Grid网格将窗体分割,接着定义按钮等其他控件并放在网格所规划的位置,并设置它们的各个属性,然后为窗体设计背景图片使得更美观。同时为按钮设置MouseEnter和MouseLeave事件通过改变字体颜色解决鼠标在按钮上方按钮上的文字看不清的问题。 界面设计完成后设计各个按钮所对应的操作,并将其订阅对应的Click事件,其中保存/打开/添加图片主要利用了savefiledialog/openfiledialog组件打开窗体保存/打开对应的文件,保存文件成功/失败会通过MessageBox显示提示信息。同时还为按钮设计了快捷键,richtetbox显示提示信息,用户点击后会自动清除该提示文本。未来方便用户还在左上角设置Lable标签用于显示正在编辑的文件名,利用定时器定时通过获取类所定义的属性edictingfilename(正在编辑的文件名)刷新Lable的值。 # 6.详细设计 ## 6.1界面设计(MainWindow.xaml) 首先设置窗体的标题Title、高度Height、宽度Width以及用来监视键盘输入字符的事件PreviewKeyDown,用于设置按钮快捷键。在对象元素Window.Background里面添加对象元素ImageBrush并设置其附加属性ImageSource设置窗体背景图。接着通过Margin定义一个左上右下边距为(10,0,10,10)、Grid.RowDefinitions和Grid.ColumnDefinitions定义2行17列的Grid网格控件,其中第4行的Height高度设置随着窗口缩小/放大而改变大小,且第1列的宽度为自动使得其根据Lable控件里面的内容设置宽度,并设置最小宽度MinWidth为控件初始长度。 通过按照如下格式设置控件的各个属性: