基于WPF开发txt阅读器
作者:微小冷
这篇文章主要为大家详细介绍了如何基于WPF开发一个简单的txt阅读器,可以满足文本文件的读写和保存,感兴趣的小伙伴可以跟随小编一起学习一下
尽管现在比较主流的阅读格式已经是
epub, modi
之类的,但
txt
的使用范围要远比前两者广泛,所以做一个txt阅读器还是有必要的。
但是对于书籍阅读而言,纯文本不包含目录信息,这对于阅读来说是一种困扰。所以想做一个
txt
阅读器,首先要解决的痛点问题,就是目录生成。
根据这个简单的需求,可以将界面设置为下面这种结构
当然,暂时设置这几种色彩,只是为了做个标记,左侧浅绿色用于存放文件名,左下角浅蓝色用于放置
txt
目录;右侧浅粉色用于放置一些系统设置,比如字体、背景、自动阅读等。
中间用于显示当前的阅读内容。
最上方并没有使用传统的菜单,而是工具栏,👈👉两个手用于打开和关闭左侧工具栏和右侧工具栏。
导入用于打开文件夹,并导入文件夹中的
txt
文件;打开则用于打开单个的
txt
文件;
保存
用于存储修改后的
txt
文本。
布局代码如下
<DockPanel LastChildFill="True">
<ToolBar DockPanel.Dock="Top">
<Button Content="👈"/>
<Button Content="导入"/>
<Button Content="打开" Click="btnOpenTxt_Click"/>
<Button Content="保存" Click="btnSaveTxt_Click"/>
<Button Content="👉"/>
</ToolBar>
<UniformGrid DockPanel.Dock="Left" Width="200" Columns="1">
<ScrollViewer Margin="2">
</ScrollViewer>
<ScrollViewer Margin="2">
</ScrollViewer>
</UniformGrid>
<StackPanel DockPanel.Dock="Right" Width="200">
</StackPanel>
<GroupBox x:Name="gbTxt" Header="无文件">
<TextBox x:Name="txt" TextWrapping="Wrap"
VerticalScrollBarVisibility="Auto">
</TextBox>
</GroupBox>
</DockPanel>
读取文本文件
最基础的功能当然是打开/保存
txt
文件,这里主要涉及到两个知识点,即文件对话框和文本文件读写。
首先为
打开
按钮添加
btnOpenTxt_Click
事件,其内容为
private void btnOpenTxt_Click(object sender, RoutedEventArgs e)
var ofd = new OpenFileDialog();
ofd.Filter = "文本文件(*.txt)|*.txt";
if (ofd.ShowDialog()!=true)
return;
gbTxt.Header = System.IO.Path.GetFileName(ofd.FileName);
txt.Text = File.ReadAllText(ofd.FileName, Encoding.Unicode);
其中,txt
文本框的名字;gbTxt
是包裹txt
的GroupBox
,上面代码的功能是,打开文本文件后,将文本文件的名字设置为GroupBox
的标题,然后导入文本文件的内容到txt
。
保存文本文件
保存功能与此类似,为保存
按钮添加btnSaveTxt_Click
事件,C#代码如下