您的位置:首页 > 编程语言 > C#

利用richtextbox做的c#简易编辑软件,

2015-11-11 21:30 495 查看
主窗体,字体大小没有实现

<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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: