欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

WPF+DiffPlex實(shí)現(xiàn)文本比對(duì)工具

 更新時(shí)間:2022年11月19日 15:29:53   作者:黑夜中的潛行者  
現(xiàn)行的文本編輯器大多都具備文本查詢的能力,但是并不能直觀的告訴用戶兩段文字的細(xì)微差異,所以對(duì)比工具在某種情況下,就起到了很便捷的效率。本文將利用DiffPlex實(shí)現(xiàn)簡(jiǎn)易的文本比對(duì)工具,需要的可以參考一下

背景

現(xiàn)行的文本編輯器大多都具備文本查詢的能力,但是并不能直觀的告訴用戶兩段文字的細(xì)微差異,所以對(duì)比工具在某種情況下,就起到了很便捷的效率。

關(guān)于 DiffPlex

DiffPlex 是用于生成文本差異的 C# 庫(kù)

準(zhǔn)備

NuGet 包

DiffPlex.Wpf 主要包

MaterialDesignThemes 主題包

代碼實(shí)現(xiàn)

MainWindow.xaml

<Window
    x:Class="TextComparisonTool.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:diffplex="clr-namespace:DiffPlex.Wpf.Controls;assembly=DiffPlex.Wpf"
    xmlns:local="clr-namespace:TextComparisonTool"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    Title="文本比對(duì)工具"
    Width="800"
    Height="450"
    Icon="DiffPlex.ico"
    WindowState="Maximized"
    mc:Ignorable="d">

    <Grid Margin="5">
        <Grid.RowDefinitions>
            <RowDefinition Height="40" />
            <RowDefinition />
        </Grid.RowDefinitions>
        <WrapPanel>
            <Button
                x:Name="BtnInput"
                Click="BtnInput_Click"
                Content="輸入文本"
                Style="{DynamicResource MaterialDesignFlatAccentBgButton}" />
        </WrapPanel>
        <diffplex:DiffViewer x:Name="DiffView" Grid.Row="1" />
    </Grid>

</Window>

MainWindow.xaml.cs

using System.Windows;

namespace TextComparisonTool
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();           
        }
         

        private void BtnInput_Click(object sender, RoutedEventArgs e)
        {
            InputOldeTextAndNewText input = new();

            input.ShowDialog();

            if (input.DialogResult is true)
            {
                DiffView.OldText = input.txtOldText.Text;
                DiffView.NewText = input.txtNewText.Text;
            }
        }
    }
}

InputOldeTextAndNewText.xaml

<Window
    x:Class="TextComparisonTool.InputOldeTextAndNewText"
    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"
    Title="輸入新舊文本"
    Width="850"
    Height="500"
    Icon="DiffPlex.ico"
    ResizeMode="CanMinimize"
    WindowStartupLocation="CenterScreen"
    mc:Ignorable="d">
    <Border Margin="5" CornerRadius="11">
        <StackPanel>
            <TextBlock Style="{DynamicResource MaterialDesignBody1TextBlock}" Text="源文本" />
            <TextBox
                x:Name="txtOldText"
                AcceptsReturn="True"
                MaxLines="10"
                MinLines="10"
                TextWrapping="Wrap" />
            <TextBlock
                VerticalAlignment="Center"
                Style="{DynamicResource MaterialDesignBody1TextBlock}"
                Text="新文本" />
            <TextBox
                x:Name="txtNewText"
                AcceptsReturn="True"
                MaxLines="10"
                MinLines="10"
                TextWrapping="Wrap" />
            <Button
                x:Name="BtnText"
                Margin="10"
                Click="BtnText_Click"
                Content="確認(rèn)"
                Style="{DynamicResource MaterialDesignFlatButton}" />
        </StackPanel>
    </Border>
</Window>

InputOldeTextAndNewText.xaml.cs

using System.Windows;

namespace TextComparisonTool
{
    /// <summary>
    /// InputOldeTextAndNewText.xaml 的交互邏輯
    /// </summary>
    public partial class InputOldeTextAndNewText : Window
    {
        public InputOldeTextAndNewText()
        {
            InitializeComponent();
        }

        private void BtnText_Click(object sender, RoutedEventArgs e)
        {
            DialogResult = true;
        }
    }
}

效果圖

到此這篇關(guān)于WPF+DiffPlex實(shí)現(xiàn)文本比對(duì)工具的文章就介紹到這了,更多相關(guān)WPF DiffPlex文本比對(duì)工具內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#中的協(xié)變與逆變深入講解

    C#中的協(xié)變與逆變深入講解

    這篇文章主要給大家介紹了關(guān)于C#中協(xié)變與逆變的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • C#正則表達(dá)式Regex類用法實(shí)例分析

    C#正則表達(dá)式Regex類用法實(shí)例分析

    這篇文章主要介紹了C#正則表達(dá)式Regex類用法,實(shí)例分析了其中比較常見(jiàn)的幾類用法,具有一定的實(shí)用價(jià)值,需要的朋友可以參考下
    2014-10-10
  • C#自寫的一個(gè)HTML解析類(類似XElement語(yǔ)法)

    C#自寫的一個(gè)HTML解析類(類似XElement語(yǔ)法)

    這篇文章主要介紹了C#自寫的一個(gè)HTML解析類(類似XElement語(yǔ)法),本文給出了實(shí)現(xiàn)代碼和使用實(shí)例,同時(shí)給出了測(cè)試HTML實(shí)例,需要的朋友可以參考下
    2015-06-06
  • C# 中使用Stopwatch計(jì)時(shí)器實(shí)現(xiàn)暫停計(jì)時(shí)繼續(xù)計(jì)時(shí)功能

    C# 中使用Stopwatch計(jì)時(shí)器實(shí)現(xiàn)暫停計(jì)時(shí)繼續(xù)計(jì)時(shí)功能

    這篇文章主要介紹了C# 中使用Stopwatch計(jì)時(shí)器可暫停計(jì)時(shí)繼續(xù)計(jì)時(shí),主要介紹stopwatch的實(shí)例代碼詳解,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • Unity 使用TexturePacker打包圖集的操作方法

    Unity 使用TexturePacker打包圖集的操作方法

    這篇文章主要介紹了Unity 使用TexturePacker打包圖集的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • C#?wpf實(shí)現(xiàn)截屏框熱鍵截屏的示例代碼

    C#?wpf實(shí)現(xiàn)截屏框熱鍵截屏的示例代碼

    這篇文章主要為大家詳細(xì)介紹了C#?wpf實(shí)現(xiàn)截屏框熱鍵截屏的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以學(xué)習(xí)一下
    2023-09-09
  • WPF實(shí)現(xiàn)繪制扇形統(tǒng)計(jì)圖的示例代碼

    WPF實(shí)現(xiàn)繪制扇形統(tǒng)計(jì)圖的示例代碼

    這篇文章主要介紹了如何利用WPF繪制扇形統(tǒng)計(jì)圖,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)或工作有一定幫助,感興趣的小伙伴可以了解一下
    2022-09-09
  • C#加密在實(shí)際中的應(yīng)用

    C#加密在實(shí)際中的應(yīng)用

    在系統(tǒng)的管理員有著實(shí)際的應(yīng)用,對(duì)于一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)說(shuō),數(shù)據(jù)庫(kù)安全還是挺重要的,所以在存入到數(shù)據(jù)庫(kù)的密碼通常都是加密的
    2012-11-11
  • C# task應(yīng)用實(shí)例詳解

    C# task應(yīng)用實(shí)例詳解

    這篇文章主要介紹了如何在C#中一些應(yīng)用task的實(shí)例,簡(jiǎn)單易懂的代碼能更好的幫你學(xué)習(xí),有興趣的朋友可以了解下
    2020-05-05
  • C#刪除整個(gè)目錄及子目錄的方法

    C#刪除整個(gè)目錄及子目錄的方法

    這篇文章主要介紹了C#刪除整個(gè)目錄及子目錄的方法,涉及C#操作目錄刪除的相關(guān)技巧,需要的朋友可以參考下
    2015-04-04

最新評(píng)論