利用richtextbox做的c#简易编辑软件,
2015-11-11 21:30
495 查看
主窗体,字体大小没有实现
<MenuItem Header="另存为..." Name="FileSaveAs_MenuItem" Click="FileSaveAs_MenuItem_Click"/> </MenuItem> <MenuItem Header="编辑(_E)" Height="30" Width="80" Click="MenuItem_Click" FontSize="18" FontFamily="Kartika">
<MenuItem Header="撤销" Command="ApplicationCommands.Undo" FontFamily="Kartika"/> <MenuItem Header="重复" Command="ApplicationCommands.Redo"/> <Separator/> <MenuItem Header="剪切" Command="ApplicationCommands.Cut"/> <MenuItem Header="粘贴" Command="ApplicationCommands.Paste"/>
<Separator/> <MenuItem Header="全选" Command="ApplicationCommands.SelectAll"/>
Header="关于..."/> </MenuItem>
主窗体事件实现cs代码
关于子窗体
代码:http://yunpan.cn/cL32atV5qZtf5 访问密码 7d43
<Window x:Class="TextBox.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:TextBox" mc:Ignorable="d" Title="简易编辑器---清歌王子制作" Height="480" Width="725" KeyDown="Window_KeyDown" FontSize="16" Icon="Image/edit.png" Loaded="Window_Loaded" > <DockPanel LastChildFill="True" Margin="0,0,0,-4"> <Menu x:Name="menu" Height="30" VerticalAlignment="Top" Margin="0,-1,0,0" DockPanel.Dock="Top" > //增加菜单 <Menu.RenderTransform> <TransformGroup> <ScaleTransform/> <SkewTransform/> <RotateTransform Angle="0.202"/> <TranslateTransform/> </TransformGroup> </Menu.RenderTransform> <MenuItem x:Name="Menu" Header="文件(_F)" Width="80" Height="30" FontSize="18" FontFamily="Kartika" Background="{x:Null}"> <MenuItem Header="新建(_N)" InputGestureText="Ctrl+N" Name="New_MenuItem" Click="New_MenuItem_Click"/> //增加菜单项新建 <Separator/> <pre name="code" class="csharp">//增加子菜单<MenuItem Header="退出(_X)" InputGestureText="Exit" Name="Exit" Click="Exit_Click"/> <MenuItem Header="打开..." Name="FileOpen_MenuItem" Click="FileOpen_MenuItem_Click"/> <MenuItem Header="保存..." Name="FileSave_MenuItem" Click="FileSave_MenuItem_Click"/>
<MenuItem Header="另存为..." Name="FileSaveAs_MenuItem" Click="FileSaveAs_MenuItem_Click"/> </MenuItem> <MenuItem Header="编辑(_E)" Height="30" Width="80" Click="MenuItem_Click" FontSize="18" FontFamily="Kartika">
//增加菜单项编辑
<span style="font-family: Arial, Helvetica, sans-serif;"> <MenuItem.Background></span><ImageBrush/> </MenuItem.Background>
<MenuItem Header="撤销" Command="ApplicationCommands.Undo" FontFamily="Kartika"/> <MenuItem Header="重复" Command="ApplicationCommands.Redo"/> <Separator/> <MenuItem Header="剪切" Command="ApplicationCommands.Cut"/> <MenuItem Header="粘贴" Command="ApplicationCommands.Paste"/>
<Separator/> <MenuItem Header="全选" Command="ApplicationCommands.SelectAll"/>
//增加菜单项帮助</MenuItem> <MenuItem Header="帮助" Height="30" Width="80" FontSize="18" FontFamily="Kartika"> <MenuItem Name="HelpAbout_MenuItem" Click="HelpAbout_MenuItem_Click"
Header="关于..."/> </MenuItem>
//18个图标按钮
</Menu> <ToolBar x:Name="toolBar" Height="30" VerticalAlignment="Top" DockPanel.Dock="Top" HorizontalAlignment="Left" Width="717" > <Button x:Name="cut" Height="25" VerticalAlignment="Top" Command="ApplicationCommands.Cut" ToolTip="剪切" > <Image Source ="Image\cut.png" ></Image> </Button> <Button x:Name="copy" Height="25" VerticalAlignment="Top" Command="ApplicationCommands.Copy" ToolTip="复制" > <Image Source ="Image\Copy.png" ></Image> </Button> <Button x:Name="paste" Height="25" VerticalAlignment="Top" Command="ApplicationCommands.Paste" ToolTip="粘贴"> <Image Source ="Image\paste.png" ></Image> </Button> <Button x:Name="undo" Height="25" VerticalAlignment="Top" Command="ApplicationCommands.Undo" ToolTip="撤销"> <Image Source ="Image\Undo.png" ></Image> </Button> <Button x:Name="redo" Height="25" VerticalAlignment="Top" Command="ApplicationCommands.Redo" ToolTip="恢复"> <Image Source ="Image\redo.png" ></Image> </Button> <Button x:Name="bold" Height="25" VerticalAlignment="Top" Command="EditingCommands.ToggleBold" ToolTip="加粗" > <Image Source ="Image\bold.png" ></Image> </Button> <Button x:Name="italic" Height="25" VerticalAlignment="Top" Command="EditingCommands.ToggleItalic" ToolTip="斜体" > <Image Source ="Image\italic.png" ></Image> </Button> <Button x:Name="underline" Height="25" VerticalAlignment="Top" Command="EditingCommands.ToggleUnderline" ToolTip="下划线" > <Image Source="Image\underline.png" ></Image> </Button> <Button x:Name="increasefontsize" Height="25" VerticalAlignment="Top" Command="EditingCommands.IncreaseFontSize" ToolTip="字体加宽" > <Image Source ="Image\increase.png" ></Image> </Button> <Button x:Name="decreasefontsize" Height="25" VerticalAlignment="Top" Command="EditingCommands.DecreaseFontSize" ToolTip="字体变窄" > <Image Source ="Image\decrease.png" ></Image> </Button> <Button x:Name="bullet" Height="25" VerticalAlignment="Top" Command="EditingCommands.ToggleBullets" ToolTip="项目编号" > <Image Source ="Image\bullet.png" ></Image> </Button> <Button x:Name="num" Height="25" VerticalAlignment="Top" Command="EditingCommands.ToggleNumbering" ToolTip="编号" > <Image Source ="Image\num.png" ></Image> </Button> <Button x:Name="left" Height="25" VerticalAlignment="Top" Command="EditingCommands.AlignLeft" ToolTip="左对齐" > <Image Source ="Image\left.png" ></Image> </Button> <Button x:Name="center" Height="25" VerticalAlignment="Top" Command="EditingCommands.AlignCenter" ToolTip="中间对齐" > <Image Source ="Image\center.png" ></Image> </Button> <Button x:Name="right" Height="25" VerticalAlignment="Top" Command="EditingCommands.AlignRight" ToolTip="右对齐" > <Image Source ="Image\right.png" ></Image> </Button> <Button x:Name="justify" Height="25" VerticalAlignment="Top" Command="EditingCommands.AlignJustify" ToolTip="两边对齐" > <Image Source ="Image\justify.png" ></Image> </Button> <Button x:Name="jia" Height="25" VerticalAlignment="Top" Command="EditingCommands.IncreaseIndentation" ToolTip="增加缩进" > <Image Source="Image\jia.png" ></Image> </Button> <Button x:Name="jian" Height="25" VerticalAlignment="Top" Command="EditingCommands.DecreaseIndentation" ToolTip="减少缩进"> <Image Source ="Image\jian.png" ></Image> </Button> <ComboBox x:Name="comboBox1" Height="25" Margin="0" VerticalAlignment="Top" Width="110" IsReadOnly="True" IsEditable="True" ToolTip="选择字体" Text="选择字体" SelectionChanged="comboBox1_SelectionChanged"/> <ComboBox x:Name="comboBox2" Height="25" Margin="0" VerticalAlignment="Top" Width="110" IsReadOnly="True" IsEditable="True" ToolTip="选择字体" Text="字体大小" SelectionChanged="comboBox2_SelectionChanged"> </ComboBox> </ToolBar> <RichTextBox x:Name="richTextBox" AcceptsTab="True" FontSize="26.667" Background="LemonChiffon"> <FlowDocument> <Paragraph> </Paragraph> </FlowDocument> </RichTextBox> </DockPanel> </Window>
主窗体事件实现cs代码
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using System.IO; using Microsoft.Win32; namespace TextBox { /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window { string s_FileName = ""; public MainWindow() { InitializeComponent(); } private void MenuItem_Click(object sender, RoutedEventArgs e) { richTextBox.Document.Blocks.Clear(); s_FileName = ""; } private void New_MenuItem_Click(object sender, RoutedEventArgs e) //点击新建文件,清空textbox { richTextBox.Document.Blocks.Clear(); } private void Window_KeyDown(object sender, KeyEventArgs e) //增加ctrl+n快捷键,新建文件 { if ((Keyboard.GetKeyStates(Key.LeftCtrl) & KeyStates.Down) > 0) { if ((Keyboard.GetKeyStates(Key.N) & KeyStates.Down) > 0) New_MenuItem_Click(sender, e); } } private void Exit_Click(object sender, RoutedEventArgs e) //退出 { Application.Current.Shutdown(); } private void Window_Loaded(object sender, RoutedEventArgs e) //选择字体 { System.Drawing.FontFamily[] families = System.Drawing.FontFamily.Families; foreach (System.Drawing.FontFamily family in families) comboBox1.Items.Add(family.Name); } private void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e) //当选择字体combobox被选择 { FontFamily fontName = new FontFamily(comboBox1.SelectedItem.ToString()); richTextBox.Selection.ApplyPropertyValue(TextElement.FontFamilyProperty, fontName); } private void FileOpen_MenuItem_Click(object sender, RoutedEventArgs e) //打开文件 { OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.Filter = "Rtf文件(*.Rtf)|*.rtf|所有文件(*.*)|*.*"; if (openFileDialog1.ShowDialog().Value) { s_FileName = openFileDialog1.FileName; String fileExtension =System.IO.Path.GetExtension(s_FileName).ToUpper(); if (fileExtension == ".RTF") { using (FileStream fileStream = File.OpenRead(s_FileName)) { TextRange textRange = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd); if (textRange.CanLoad(DataFormats.Rtf)) textRange.Load(fileStream, DataFormats.Rtf); } } } } private void FileSave_MenuItem_Click(object sender, RoutedEventArgs e) //保存文件 { if (s_FileName.Length != 0) { using (FileStream fileStream = File.Create(s_FileName)) { TextRange textRange = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd); textRange.Save(fileStream, DataFormats.Rtf); } } else FileSaveAs_MenuItem_Click(sender, e); } private void FileSaveAs_MenuItem_Click(object sender, RoutedEventArgs e) //文件另存为 { SaveFileDialog saveFileDialog1 = new SaveFileDialog(); saveFileDialog1.Filter = "Rtf文件(*.Rtf)|*.rtf|所有文件(*.*)|*.*"; if (saveFileDialog1.ShowDialog().Value) { s_FileName = saveFileDialog1.FileName; using (FileStream fileStream = File.Create(s_FileName)) { TextRange textRange = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd); textRange.Save(fileStream, DataFormats.Rtf); } } } private void HelpAbout_MenuItem_Click(object sender, RoutedEventArgs e) //帮助菜单关于。new 子窗体About,show出来 { About dl = new About(); dl.ShowDialog(); } } }
关于子窗体
<Window x:Class="TextBox.About" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:TextBox" mc:Ignorable="d" Height="300" Width="300" ResizeMode="NoResize" Title=" 关于记事本" Icon="Image/paste.png"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="73*"/> <ColumnDefinition Width="25*"/> </Grid.ColumnDefinitions> <Label x:Name="label" Content="清歌王子制作" HorizontalAlignment="Center" VerticalAlignment="Center" Height="46" Margin="72,70,65,156" Width="157" FontSize="24" Grid.ColumnSpan="2"/> <Button x:Name="button" Content="确认" HorizontalAlignment="Center" VerticalAlignment="Bottom" Width="294" Height="74" Grid.ColumnSpan="2" FontSize="36" Click="button_Click"/> </Grid> </Window>
代码:http://yunpan.cn/cL32atV5qZtf5 访问密码 7d43
相关文章推荐
- (原创)c#学习笔记10--定义类成员01--成员定义06--自动属性
- C#GDI+图像处理
- C# 内存法图像处理
- (C#)xml的简单理解创建和读取
- 【C#】RGB,CMYK,HSB各种颜色表示的转换(转)
- C# Socket简单例子(服务器与客户端通信)
- 教你快速在c#中调用C++代码(函数)
- Visual Studio 2010 安装 MSDN Library
- 【C#】正则表达式
- (原创)c#学习笔记10--定义类成员01--成员定义03--定义属性
- C#创建COM组件
- (原创)c#学习笔记10--定义类成员01--成员定义02--建立方法
- (原创)c#学习笔记10--定义类成员01--成员定义01--定义字段
- C#-如何ping IP
- C#操作符??和?:
- C# 文字转换最简单的方法
- c#中MD5的加密解密
- c#在Repeater中的button如何触发onclick事件
- C#中的Action<T>、Func<T>委托和Lambda表达式
- C# MVC开发DropListFor默认值选中