文本编辑器自己_第1页
文本编辑器自己_第2页
文本编辑器自己_第3页
文本编辑器自己_第4页
文本编辑器自己_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《文本编辑器》实验报告实验题目:文本编辑器班级:软件工程专业(1)班11092711姓名: 指导老师:设计日期:2012年12月30日1、 实验目的:综合运行各种控件,进一步熟悉可视化编程方式,特别是熟悉使用Windows的编程环境和风格综合运用C#.NET提供的标准控件,如:菜单控件、公共对话框控件、RichTextBox控件、ToolStrip控件制作小型应用系统。2、 实验内容:参考系统提供的写字板功能,编写一个小型的文字编辑工具。对该文档编辑器,至少完成以下功能:文件:(新建、打开、保存、退出、保存、另存为、打印、打印预览)编辑:(复制、剪切、粘贴、撤销、重做、)界面设计时应有工具栏,弹出菜单,状态栏等功能来提高操作的便利性;过程与实施文件-〉新建->项目-〉WPF应用程序(1)将Grid布局面板改为DockPanel布局面板。代码如下:<DockPanelLastChildFill=〃True〃Height=〃314〃></DockPanel>(2) 插入菜单工具条,代码如下:<MenuName=〃menu1〃Height=〃26〃Width=〃503〃DockPanel.Dock=〃Top〃Focusable=〃True〃VerticalAlignment=〃Top〃></Menu>(3) 在菜单工具栏中插入文件(_F)编辑(_E)选项。代码如下:<MenuItemHeader="文件(_F)〃Name=“文件"〉<MenuItemHeader="编辑(_E)〃Name=〃编辑">(4) 在文件选项下插入新建、分隔线跟退出,并且给新建跟退出增加单机函数,为快捷键增加事件函数,代码如下:<MenuItemClick=〃MenuItem_Click"Header=新建(_N)"InputGestureText="Ctrl+N"/>〈Separator/><MenuItemHeader="M出(_X)〃Click=〃Exit_MenuItem_Click〃InputGestureText="CtrlX"/>privatevoidMenuItem_Click(objectsender,RoutedEventArgse){杭州电子科技大学一一软件工程专业一一C#实验报告richTextBoxl.Document.Blocks.Clear()}privatevoidExit_MenuItem_Click(objectsender,RoutedEventArgse){Application.Current.Shutdown();}privatevoidWindow_KeyDown(objectsender,RoutedEventArgse){if((Keyboard.GetKeyStates(Key.LeftCtrl)&KeyStates.Down)>0){if((Keyboard.GetKeyStates(Key.N)&KeyStates.Down)>0)MenuItem_Click(sender,e);得到如图所示界面:3.(5)在编辑选项下增加如下功能选顼<MenuItemHeader="(撤销_Z)〃Command=〃Undo〃InputGestureText="Ctrl+Z"/><MenuItemHeader="全选_A)"Command="SelectAll"InputGestureText="Ctrl+A"/><Separator/><MenuItemHeader="|^切_X)"Command="Cut"InputGestureText="Ctrl+X"/><MenuItemHeader="复制—C)"Command="Copy"InputGestureText="Ctrl+C"/><MenuItemHeader="粘贴_V)"Command="Paste"InputGestureText="Ctrl+V"/>得到如下界面:

4.接下来在菜单栏下面插入工具栏toolbar<ToolBarHeight=〃30"Name=〃toolBar1"Width="500"DockPanel.Dock="Top”VerticalAlignment=〃Top〃>5.在拖入的工具栏内增加Button18个,然后在XMAL内增加代码,并且直接改command属性使其拥有所需的效果(在引用中增加一个文件夹并且加入所需要的图片):<ButtonHeight="30"Name="button1"Width="30"Command="ApplicationCommands.Cut”ToolTip」剪贴"><Button.Background><ImageBrushImageSource="/文本器;component/Images/editcut.png"/></Button.Background></Button><Button Height="30" Name="button2”Command="ApplicationCommands.Copy"ToolTip="复制"><Button.Background><ImageBrushImageSource="/文本器;component/Images/editcopy.png"/></Button.Background></Button><Button Height="30" Name="button3"Command="ApplicationCommands.Paste"ToolTip='粘贴"><Button.Background><ImageBrushImageSource="/文本器;component/Images/editpaste.png"/></Button.Background></Button><Button Height="30" Name="button4"Command="ApplicationCommands.Redo"ToolTip」恢复"><Button.Background><ImageBrushImageSource="/文本器;component/Images/editredo.png"/>编 辑Width="30"编 辑Width="30"编 辑Width="30”编 辑Width="30”编 辑</Button><ButtonHeight="30"Name="button5"Width="30"ToolTip="撤销Command="ApplicationCommands.Undo"><Button.Background><ImageBrush ImageSource="/ 文本编辑器;component/Images/editundo.png"/></Button.Background></Button><Button Height="30" Name="button6" Width="30”Command="EditingCommands.ToggleBold"ToolTip='加粗"><TextBlockFontWeight="Bold">B</TextBlock></Button><Button Height="30" Name="button7" Width="30"Command="EditingCommands.ToggleItalic"ToolTip='斜倾"><TextBlockFontStyle="Italic"FontWeight="Bold">I</TextBlock></Button><Button Height="30" Name="button8" Width="30"Command="EditingCommands.ToggleUnderline"ToolTip」下划线"><TextBlock TextDecorations="Underline"FontWeight="Bold">U</TextBlock></Button><Button Height="30" Name="button9" Width="30"Command="EditingCommands.IncreaseFontSize"ToolTip="字符加宽"><Button.Background><ImageBrushImageSource="/文本编辑器;component/Images/charactergrowfont.png"/></Button.Background></Button><Button Height="30" Name="button10" Width="30"Command="EditingCommands.DecreaseFontSize"ToolTip="字符变窄"〉<Button.Background><ImageBrushImageSource="/文本编辑器;component/Images/charactershrinkfont.png"/></Button.Background></Button><Button Height="30" Name="button11" Width="30"Command="EditingCommands.ToggleBullets"ToolTip='项目符号"><Button.Background><ImageBrushImageSource="/文本编辑器;component/Images/listbullets.png"/></Button.Background></Button><Button Height="30" Name="button12" Width="30"Command="EditingCommands.ToggleNumbering"ToolTip='编号"><Button.Background><ImageBrush ImageSource="/ 文本编辑器;component/Images/listnumbering.png"/>

</Button.Background></Button><Button Height="30" Name="button13”Command="EditingCommands.AlignLeft"ToolTip="左对齐"><Button.Background><ImageBrush ImageSource="/ 文本器;component/Images/paragraphleftjustify.png"/></Button.Background></Button><Button Height="30" Name="button14"Command="EditingCommands.AlignCenter"ToolTip="中间对齐"><Button.Background><ImageBrush ImageSource="/ 文本器;component/Images/paragraphcenterjustify.png"/></Button.Background></Button><Button Height="30" Name="button15"Command="EditingCommands.AlignRight"ToolTip="右对齐"〉<Button.Background><ImageBrush ImageSource="/ 文本器;component/Images/paragraphrightjustify.png"/></Button.Background></Button><Button Height="30" Name="button16"Command="EditingCommands.AlignJustify"ToolTip="两边对齐"><Button.Background><ImageBrush ImageSource="/ 文本器;component/Images/paragraphfulljustify.png"/></Button.Background></Button><Button Height="30" Name="button17"Command="EditingCommands.IncreaseIndentation"ToolTip」增加缩进量"><Button.Background><ImageBrush ImageSource="/ 文本器;component/Images/paragraphincreaseindentation.png"/></Button.Background></Button><Button Height="30" Name="button18"Command="EditingCommands.DecreaseIndentation"ToolTip="减少缩进量"〉<Button.Background><ImageBrush ImageSource="/ 文本Width="30"编 辑Width="30"编 辑Width="30”编 辑Width="30”Width="30"编 辑Width="30"编 辑Width="30”编 辑Width="30”编 辑Width="30”编 辑Width="30”编 辑得到如图所示效果:得到如图所示效果:5.再在工具条上增加两个combox下拉框,用来改变字体以及改变字体的大小函数为:(1).改变IsReadOnly=〃True〃的属性,并且增加函数为:SelectionChanged="comboBox1_SelectionChangedprivatevoidcomboBox1_SelectionChanged(objectsender,SelectionChangedEventArgse){FontFamilyfontName=newFontFamily(comboBox1.SelectedItem.ToString());richTextBox1.Selection.ApplyPropertyValue(TextElement.FontFamilyProperty,fontName);}privatevoidcomboBox2_SelectionChanged(objectsender,SelectionChangedEventArgse){ComboBoxItemCbItem=comboBox2.SelectedItemasComboBoxItem;doublefontSize=Convert.ToDouble(CbItem.Content.ToString());richTextBox1.Selection.ApplyPropertyValue(TextElement.FontSizeProperty,fontSize);}得到如图所示效果:(在这个之前还需要在项目管理器中引用菜单里添加system・drawing项)6.About对话框(1)单击“项目1添加窗体”菜单项,在模板中选择“窗体”,以此建立一个新的窗体,在窗体中添加一个Lable和一个button,增加按钮的事件处理函数:privatevoidbutton1_Click(objectsender,RoutedEventArgse){Close();}⑵在顶级菜单项中增加“关于...”并且增加单击处理函数:privatevoidHelpAbout_MenuItem_Click(objectsender,RoutedEventArgse){Aboutd1=newAbout();d1.ShowDialog();}得到如图所示效果7.在文件选项下插入查找和替换:(1)就像插入上述About对话框一样,加入查找和替换对话框。并且设置为不能放大或者缩小然后加入两个textbox,两个button;然后增加事件处理函数:publicpartialclassFindReplace:Window{Window1mainWindow;publicFindReplace(Window1window1){InitializeComponent();mainWindow=window1;}publicFindReplace(){InitializeComponent();}

privatevoidWindow_Loaded(objectsender,RoutedEventArgse){}RoutedEventArgse)elseprivatevoidbutton1_Click(objectsender,{RoutedEventArgse)elseif(textBox1.Text.Length!=0)mainWindow.FindRichTextBoxString(textBox1.Text);MessageBox.Show(privatevoidbutton2_Click(objectsender,RoutedEventArgse){if(textBox2.Text.Length!=0)mainWindow.ReplaceRichTextBoxString(textBox2.Text); elseMessageBox.Show }}}得到如图所示效果:1Window!文件⑥帮勘:VA「鞘CtrkZ|■ w+-AA::Ctd+¥Ctrf+A磐切Ctri+X复制CtrkCCtri+V8.在文件菜单项中增加打印和打印预览两项,然后直接增加事件单击处理函数:privatevoidFilePrint_MenuItem_Click(objectsender,RoutedEventArgse){PrintDialogpd=newPrintDialog();if((pd.ShowDialog()==true)){//pd.PrintVisual(richTBasVisual,);//pd.PrintDocument((((IDocumentPaginatorSource)richTextBox1.Document).DocumentPaginator),”将richTB显示内容作为DocumentPaginator对象打印");}}privatevoidFilePrintPreview_MenuItem_Click(objectsender,RoutedEventArgse){〃得到打印纸打印区域,打开PrintDialog对话框,选择打印机、纸大小等参数,赋给iaPrintDocumentImageableAreaia=null;XpsDocumentWriterdocWriter=PrintQueue.CreateXpsDocumentWriter(refia);PrintPreviewprintPreviewDlg=newPrintPreview();printPreviewDlg.Owner=this;//不能直接对richTextBoxl.Document处理,做一个拷贝,将拷贝显示到DocumentviewerTextRange sourceDocument = newTextRange(richTextBox1.Document.ContentStart,richTextBoxl.Document.ContentEnd);MemoryStreamstream=newMemoryStream();sourceDocument.Save(stream,DataFormats.Xaml);FlowDocumentflowDocumentCopy=newFlowDocument();TextRange copyDocumentRange = newTextRange(flowDocumentCopy.ContentStart,flowDocumentCopy.ContentEnd);copyDocumentRange.Load(stream,DataFormats.Xaml);if(ia!=null){IDocumentPaginatorSourcetext=flowDocumentCopyasIDocumentPaginatorSource;//对拷贝处理MemoryStreamms=newMemoryStream();Packagepkg=Package.Open(ms,FileMode.Create,FileAccess.ReadWrite);stringpack="p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论