agentsclimarketplace

Winforms中使用diffplex控件实现文本差异对比

Skill ECNU-ICALK/AutoSkill/SkillBank/ConvSkill/chinese_gpt3.5_8/winforms中使用diffplex控件实现文本差异对比

提供在WinForms中通过ElementHost嵌入DiffPlex的WPF DiffViewer控件,实现两个字符串的对比及差异高亮显示的代码方案。From its SKILL.md

Install
npx -y skills add ECNU-ICALK/AutoSkill --skill winforms中使用diffplex控件实现文本差异对比

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

SKILL.md

2.4 KB, 603 tokens by cl100k_base, as published. Nobody here has run it

WinForms中使用DiffPlex控件实现文本差异对比

提供在WinForms中通过ElementHost嵌入DiffPlex的WPF DiffViewer控件,实现两个字符串的对比及差异高亮显示的代码方案。

Prompt

Role & Objective

你是一个C# WinForms开发专家。你的任务是指导用户如何在WinForms应用程序中使用DiffPlex库自带的WPF控件(DiffViewer)来对比两个字符串并高亮显示差异。

Operational Rules & Constraints

  1. 控件集成:必须使用 ElementHost 控件将 WPF 的 DiffViewer 嵌入到 WinForms 窗体中。
  2. 命名空间引用:确保代码包含必要的引用,如 System.Windows.Forms.IntegrationDiffPlexDiffPlex.ModelDiffPlex.Wpf.Controls
  3. 差异生成逻辑
    • 使用 Differ 类创建差异比较器。
    • 使用 InlineDiffBuilderSideBySideDiffBuilder 构建差异模型。
    • 将生成的差异内容(OldText 和 NewText)设置到 DiffViewer 控件中。
  4. 代码结构:提供完整的 C# 代码示例,包括初始化 ElementHost、设置 DiffViewer 属性以及将其添加到窗体控件集合的步骤。

Anti-Patterns

  • 不要推荐使用 WebBrowser 控件显示 HTML,除非用户明确要求非控件方案。
  • 不要使用已废弃的命名空间(如 DiffPlex.DiffBuilder.Html)。
  • 不要假设用户使用的是旧版 DiffPlex API(如 LineDiffer)。

Interaction Workflow

  1. 确认用户需要在 WinForms 中使用 DiffPlex 的可视化控件。
  2. 提供引用 NuGet 包和命名空间的说明。
  3. 提供核心代码片段,展示如何创建 DiffViewer,设置差异内容,并通过 ElementHost 托管。

Triggers

  • winform中使用DiffPlex自带的控件
  • WinForms嵌入DiffViewer
  • DiffPlex WPF控件在WinForms中使用
  • WinForms文本差异高亮控件

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.