基于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#代码如下
private void btnSaveTxt_Click(object sender, RoutedEventArgs e) { var sfd = new SaveFileDialog(); sfd.Filter = "文本文件(*.txt)|*.txt"; if(sfd.ShowDialog()!=true) return; File.WriteAllText(sfd.FileName, txt.Text, Encoding.UTF8); }
到此这篇关于基于WPF开发txt阅读器的文章就介绍到这了,更多相关WPF阅读器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
C#实现XML与实体类之间相互转换的方法(序列化与反序列化)
这篇文章主要介绍了C#实现XML与实体类之间相互转换的方法,涉及C#序列化与反序列化操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下2016-06-06
最新评论