mcpField
S
syncfusion-wpf-smart-text-editor

syncfusion-wpf-smart-text-editor

github.com/syncfusion开发5153 次安装2 周前更新
代码仓库

关于 syncfusion-wpf-smart-text-editor

面向 WPF 开发者的 Syncfusion Smart Text Editor 实现指南,介绍支持 AI 补全和自定义短语的多行文本输入控件。可配置建议显示方式、AI 服务和编辑器样式。

主要功能

  1. 01AI 驱动的上下文建议
  2. 02行内或弹出式建议
  3. 03自定义短语离线建议
  4. 04配置多种 AI 服务
  5. 05最大长度和占位文本设置
  6. 06文本变更命令支持

适用场景

  1. 01编写客服回复和邮件
  2. 02在 AI 不可用时使用短语建议
  3. 03通过命令处理文本变更

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/syncfusion/wpf-ui-components-skills --skill syncfusion-wpf-smart-text-editor

安装后在 Claude Code 中输入/syncfusion-wpf-smart-text-editor确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
ai-service-configuration.md
commands.md
customization.md
getting-started.md
suggestion-display-modes.md

详细介绍

实现 Syncfusion WPF 智能文本编辑器

何时使用此技能

当用户需要以下功能时,请使用此技能:

  • 实现 AI 驱动的文本输入,提供预测建议和上下文感知补全
  • 在 WPF 应用程序的多行文本编辑器中添加智能自动补全
  • 集成 AI 服务(Azure OpenAI、OpenAI、Ollama 或自定义提供程序)以生成文本
  • 创建智能文本字段,用于客户支持、撰写电子邮件或创作内容
  • 构建响应式文本编辑器,支持内联或弹出式建议显示模式
  • 自定义建议行为,支持用户角色、自定义短语和样式选项
  • 处理文本更改事件并为文本编辑器实现命令模式
  • 在 AI 不可用时通过自定义短语库提供离线建议

智能文本编辑器(SfSmartTextEditor)适用于需要智能输入辅助、品牌化回复模板和 AI 增强型用户输入的场景。

组件概览

Syncfusion WPF 智能文本编辑器是一种多行输入控件,可通过预测建议加快输入速度。它可集成 AI 推理服务,提供上下文感知补全,并支持内联或弹出式建议显示模式。主要功能包括:

核心功能:

  • 通过 IChatInferenceService 提供 AI 驱动的建议
  • 内联和弹出式建议显示模式
  • 用于离线建议的自定义短语库
  • 键盘集成(按 Tab、向右箭头键接受建议)
  • 手势支持(点击以显示弹出式建议)
  • 最大长度验证
  • 支持自定义样式的占位文本
  • 完整的 UI 自定义功能(字体、颜色、大小)
  • 命令支持(TextChangedCommand)

支持的 AI 提供程序:

  • Azure OpenAI
  • OpenAI
  • Ollama(可自托管模型)
  • 通过 IChatInferenceService 接口接入的自定义服务
  • Claude AI(Anthropic)
  • DeepSeek AI
  • Google Gemini AI
  • Groq AI

文档和导航指南

入门和安装

📄 阅读: references/getting-started.md

  • 安装 Syncfusion.SfSmartComponents.WPF NuGet 包
  • 通过设计器、XAML 或 C# 添加控件
  • 配置用于建议的 UserRole 和 UserPhrases
  • 在 App.xaml.cs 中注册 AI 服务
  • 运行应用程序并验证 AI 功能

**何时阅读:**开始实现新的智能文本编辑器、设置开发环境,或将控件添加到现有 WPF 项目时。

建议显示模式

📄 阅读: references/suggestion-display-modes.md

  • 内联模式:在插入符后就地呈现建议
  • 弹出模式:在插入符附近显示紧凑提示浮层
  • 键盘快捷键(Tab、向右箭头键)
  • 手势支持(点击)
  • 在内联和弹出模式之间进行选择

**何时阅读:**用户需要配置建议的显示方式、切换显示模式,或针对桌面设备与触控设备进行优化时。

自定义和样式

📄 阅读: references/customization.md

  • 自定义文本样式(FontSize、Foreground、字体)
  • 自定义占位文本和颜色
  • 建议文本颜色(SuggestionInlineStyle)
  • 建议弹出窗口背景(SuggestionPopupStyle)
  • 最大输入长度(MaxLength 属性)
  • 完整的样式示例

**何时阅读:**自定义外观以匹配应用程序主题、更改文本样式、配置占位文本或设置字符限制时。

命令

📄 阅读: references/commands.md

  • TextChangedCommand 概述和实现
  • 在 XAML 中绑定命令
  • 用于命令处理的 ViewModel 模式
  • 事件处理模式
  • 跟踪文本更改的使用场景

**何时阅读:**实现文本更改通知、MVVM 命令模式或自定义事件处理逻辑时。

AI 服务配置(内置提供商)

📄 阅读: references/ai-service-configuration.md

  • 在 App.xaml.cs 中注册聊天客户端
  • Azure OpenAI 配置(部署、API 密钥、终结点)
  • OpenAI 配置(API 密钥、模型选择)
  • Ollama 可自托管模型(安装、本地设置)
  • 各提供商所需的 NuGet 包
  • 内置 AI 提供商故障排除

何时阅读: 为 AI 驱动的建议配置 Azure OpenAI、OpenAI 或 Ollama。使用本文设置官方/内置 AI 提供商。

常见模式

模式 1:支持工单回复编辑器

场景: 带品牌化回复的客户支持应用。

<syncfusion:SfSmartTextEditor
    Placeholder="Write your response..."
    UserRole="Technical support engineer helping customers with product issues"
    MaxLength="2000"
    SuggestionDisplayMode="Inline">
    <syncfusion:SfSmartTextEditor.UserPhrases>
        <sys:String>Thanks for contacting Syncfusion support.</sys:String>
        <sys:String>Could you please share a reproducible sample?</sys:String>
        <sys:String>We've logged this as a bug and will update you soon.</sys:String>
        <sys:String>Let us know if you need further assistance.</sys:String>
    </syncfusion:SfSmartTextEditor.UserPhrases>
</syncfusion:SfSmartTextEditor>
模式 2:使用自定义样式撰写电子邮件

场景: 带自定义主题和弹出建议的电子邮件客户端。

<syncfusion:SfSmartTextEditor
    Placeholder="Compose your email..."
    UserRole="Professional email author"
    SuggestionDisplayMode="Popup"
    MaxLength="5000">
    <syncfusion:SfSmartTextEditor.Style>
        <Style TargetType="{x:Type syncfusion:SfSmartTextEditor}">
            <Setter Property="FontSize" Value="14"/>
            <Setter Property="Foreground" Value="#333333"/>
            <Setter Property="FontFamily" Value="Segoe UI"/>
        </Style>
    </syncfusion:SfSmartTextEditor.Style>
    <syncfusion:SfSmartTextEditor.SuggestionPopupStyle>
        <Style TargetType="syncfusion:SuggestionPopup">
            <Setter Property="Background" Value="#0078D4"/>
            <Setter Property="Foreground" Value="White"/>
        </Style>
    </syncfusion:SfSmartTextEditor.SuggestionPopupStyle>
</syncfusion:SfSmartTextEditor>
模式 3:带更改跟踪的文本编辑器

场景: 跟踪文本更改,以便自动保存或验证。

<syncfusion:SfSmartTextEditor
    x:Name="smartTextEditor"
    TextChangedCommand="{Binding TextChangedCommand}"
    Placeholder="Start typing..."/>
public class EditorViewModel : INotifyPropertyChanged
{
    public ICommand TextChangedCommand { get; }

    public EditorViewModel()
    {
        TextChangedCommand = new RelayCommand(OnTextChanged);
    }

    private void OnTextChanged()
    {
        // Auto-save, validation, or tracking logic
        Debug.WriteLine("Text changed - triggering auto-save");
    }
}
模式 4:离线优先并使用自定义短语

场景: 无 AI 连接时也能正常工作的应用。

<syncfusion:SfSmartTextEditor
    Placeholder="Type your message..."
    UserRole="Sales representative responding to leads">
    <syncfusion:SfSmartTextEditor.UserPhrases>
        <sys:String>Thank you for your interest in our products.</sys:String>
        <sys:String>I'd be happy to schedule a demo.</sys:String>
        <sys:String>Our pricing starts at $99 per month.</sys:String>
        <sys:String>Let me connect you with our solutions team.</sys:String>
        <sys:String>Feel free to reach out with any questions.</sys:String>
    </syncfusion:SfSmartTextEditor.UserPhrases>
</syncfusion:SfSmartTextEditor>

注意: 如果未配置 AI 服务,编辑器会自动回退到 UserPhrases 来提供建议。

关键属性

属性类型说明默认值
Textstring获取或设置文本内容""
Placeholderstring编辑器为空时显示的占位文本null
UserRolestring描述输入者身份和意图(影响 AI 建议)null
UserPhrasesList<string>用于离线建议的自定义短语库null
SuggestionDisplayModeSuggestionDisplayMode显示模式:Inline 或 PopupInline
MaxLengthint最大字符数限制0(不受限制)
TextChangedCommandICommand文本更改时触发的命令null
StyleStyle文本样式(FontSize、Foreground 等)Default
PlaceholderStyleStyle占位文本样式Default
SuggestionInlineStyleStyle内联建议文本样式Default
SuggestionPopupStyleStyle弹出建议背景样式Default

常见用例

用户需要内联建议时(桌面端)
  • 操作: 设置 SuggestionDisplayMode="Inline"
  • 原因: 在键盘驱动的设备上实现自然的输入流程
  • 参考: suggestion-display-modes.md
用户需要弹出建议时(触摸设备)
  • 操作: 设置 SuggestionDisplayMode="Popup"
  • 原因: 在移动设备/触摸屏上更容易点按
  • 参考: suggestion-display-modes.md
用户需要集成 Azure OpenAI 时
  • 操作: 在 App.xaml.cs 中配置 AzureOpenAIClient
  • 原因: 借助 Azure 安全性与合规性,提供企业级 AI
  • 参考: ai-service-configuration.md
用户需要字符数限制时
  • 操作: 设置 MaxLength 属性
  • 原因: 强制执行输入验证并防止文本过长
  • 参考: customization.md
用户需要文本更改通知时
  • 操作: 将 TextChangedCommand 绑定到 ViewModel
  • 原因: 跟踪更改,以便自动保存、验证或进行分析
  • 参考: commands.md
用户需要离线建议时
  • 操作: 在不配置 AI 服务的情况下设置 UserPhrases
  • 原因: 在 AI 不可用或已禁用时提供建议
  • 参考: getting-started.md
用户需要自定义主题时
  • 操作: 应用 Style、PlaceholderStyle、SuggestionInlineStyle
  • 原因: 匹配应用品牌和设计系统
  • 参考: customization.md

后续步骤:

  1. 如需初始设置和安装 → 阅读 getting-started.md
  2. 如需配置 AI 提供商 → 阅读 ai-service-configuration.md
  3. 如需自定义外观 → 阅读 customization.md

评论

支持 Markdown