C#教程

关注公众号 jb51net

关闭
首页 > 软件编程 > C#教程 > WPF阅读器

基于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是包裹txtGroupBox,上面代码的功能是,打开文本文件后,将文本文件的名字设置为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阅读器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文