| name | syncfusion-wpf-spellchecker |
| description | Guide for implementing Syncfusion WPF SpellChecker (SfSpellChecker) control in WPF applications. Use this skill when implementing spell checking, text validation, dictionary management, or spelling error detection in WPF. Covers checking spelling mistakes in TextBox/RichTextBox controls, language dictionaries, custom dictionaries, context menu suggestions, and spelling validation requirements. |
| metadata | {"author":"Syncfusion Inc","version":"34.1.29"} |
Implementing Syncfusion WPF SpellChecker
SfSpellChecker provides a simple and intuitive interface to check for spelling errors in WPF text editor controls. It offers suggestions for misspelled words through dialog and context menu, supports multiple languages/cultures, custom dictionaries, and various ignore options.
When to Use This Skill
Use this skill when you need to:
- Add spell checking capability to WPF TextBox, RichTextBox, or other text editor controls
- Implement dialog-based or context menu-based spell checking
- Support multiple languages and cultures in spell checking
- Add custom dictionaries (Hunspell, Ispell, or OpenOffice formats)
- Configure ignore rules for emails, URLs, HTML tags, mixed case words, etc.
- Provide real-time spelling suggestions to users
- Customize spell checker appearance with themes
- Handle spell check completion events
Component Overview
Control: SfSpellChecker (Syncfusion.Windows.Controls.SfSpellChecker)
Platform: WPF
Namespace: Syncfusion.Windows.Controls
Assembly: Syncfusion.SfSpellChecker.WPF
Key Capabilities:
- Dialog-based spell checking with suggestion list
- Context menu suggestions with right-click on error words
- Multi-language support with custom dictionaries
- Ignore options for special text patterns
- Custom word dictionary support
- Real-time error highlighting
- Replace, Ignore All, Add to Dictionary actions
Documentation and Navigation Guide
Getting Started
📄 Read: references/getting-started.md
- Installation and assembly deployment
- Adding SfSpellChecker to an application
- Attaching spell checker to TextBox
- First spell check with dialog
- Context menu setup
- Enable/disable spell checking
- Getting suggestions programmatically
Spell Check Methods
📄 Read: references/spell-check-methods.md
- Dialog-based spell checking
- Context menu-based suggestions
- PerformSpellCheckUsingDialog method
- Error word highlighting
- Replace and ignore operations
- Add to Dictionary functionality
Ignore Options
📄 Read: references/ignore-options.md
- Ignoring email addresses
- Ignoring URLs and internet addresses
- Ignoring HTML tags
- Ignoring mixed case words
- Ignoring uppercase words
- Ignoring alphanumeric words
- Configuration examples
Dictionary Support
📄 Read: references/dictionary-support.md
- Default English dictionary
- Multi-language spell checking
- Hunspell dictionary format
- Ispell dictionary format
- OpenOffice dictionary format
- Adding custom dictionaries
- Custom word lists
- Switching culture at runtime
- DictionaryCollection management
Customization and Theming
📄 Read: references/customization.md
- SpellCheckCompleted event
- Restricting completion message box
- Theme support with SfSkinManager
- ThemeStudio customization
- Visual appearance options
Quick Start
Basic Setup with Dialog
<Window xmlns:syncfusion="http://schemas.syncfusion.com/wpf">
<Grid>
<StackPanel>
<TextBox
Text="Ths is a sampel text with speling errors."
Name="textbox"
TextWrapping="Wrap">
<syncfusion:SfSpellChecker.SpellChecker>
<syncfusion:SfSpellChecker
x:Name="spellChecker"
EnableSpellCheck="True"/>
</syncfusion:SfSpellChecker.SpellChecker>
</TextBox>
<Button
Content="Spell Check"
Click="SpellCheck_ButtonClick"
HorizontalAlignment="Center"/>
</StackPanel>
</Grid>
</Window>
private void SpellCheck_ButtonClick(object sender, RoutedEventArgs e)
{
spellChecker.PerformSpellCheckUsingDialog();
}
Quick Setup with Context Menu
<syncfusion:SfSpellChecker
x:Name="spellChecker"
EnableSpellCheck="True"
EnableContextMenu="True"/>
Users can right-click on error words (red underlined) to see suggestions.
Common Patterns
Pattern 1: Basic Spell Check with Dialog
SfSpellChecker spellChecker = new SfSpellChecker();
spellChecker.EnableSpellCheck = true;
SfSpellChecker.SetSpellChecker(textbox, spellChecker);
spellChecker.PerformSpellCheckUsingDialog();
Pattern 2: Context Menu with Ignore Options
SfSpellChecker spellChecker = new SfSpellChecker();
spellChecker.EnableSpellCheck = true;
spellChecker.EnableContextMenu = true;
spellChecker.IgnoreUrl = true;
spellChecker.IgnoreEmailAddress = true;
spellChecker.IgnoreUpperCaseWords = true;
SfSpellChecker.SetSpellChecker(textbox, spellChecker);
Pattern 3: Multi-Language Support
CultureInfo culture = new CultureInfo("fr-FR");
SfSpellChecker spellChecker = new SfSpellChecker();
spellChecker.Dictionaries = new DictionaryCollection();
spellChecker.Dictionaries.Add(
new HunspellDictionary()
{
Culture = culture,
GrammarUri = new Uri("/MyApp;component/Dictionaries/fr-FR.aff", UriKind.Relative),
DictionaryUri = new Uri("/MyApp;component/Dictionaries/fr-FR.dic", UriKind.Relative)
}
);
spellChecker.Culture = culture;
SfSpellChecker.SetSpellChecker(textbox, spellChecker);
Pattern 4: Custom Dictionary
Uri customDictUri = new Uri(Directory.GetCurrentDirectory() +
@"\Dictionaries\CustomWords.txt", UriKind.Absolute);
spellChecker.Dictionaries.Add(
new CustomDictionary()
{
Culture = new CultureInfo("en-US"),
DictionaryUri = customDictUri
}
);
Pattern 5: Handle Spell Check Completion
spellChecker.SpellCheckCompleted += (sender, e) =>
{
(e as SpellCheckCompletedEventArgs).ShowMessageBox = false;
MessageBox.Show("Spell check completed!", "Done");
};
Key Properties
| Property | Type | Description |
|---|
EnableSpellCheck | bool | Enable/disable spell checking (default: true) |
EnableContextMenu | bool | Enable context menu suggestions (default: true) |
Culture | CultureInfo | Culture for spell checking |
Dictionaries | DictionaryCollection | Collection of dictionaries |
IgnoreUrl | bool | Ignore internet addresses |
IgnoreEmailAddress | bool | Ignore email addresses |
IgnoreHtmlTags | bool | Ignore HTML tags |
IgnoreMixedCaseWords | bool | Ignore mixed case words (e.g., AbCDeFH) |
IgnoreUpperCaseWords | bool | Ignore all uppercase words |
IgnoreAlphaNumericWords | bool | Ignore words with numbers |
Key Methods
| Method | Description |
|---|
PerformSpellCheckUsingDialog() | Opens spell check dialog |
GetSuggestions(string word) | Gets suggestion list for error word |
GetPhoneticWords(string word) | Gets phonetic word suggestions |
GetAnagrams(string word) | Gets anagram suggestions |
Common Use Cases
- Text Editor with Spell Check - Add comprehensive spell checking to WPF text editors
- Multi-Language Document Editor - Support multiple languages with culture-specific dictionaries
- Custom Domain Dictionary - Add industry-specific or company-specific terms
- Email Client - Spell check with email/URL ignore options
- HTML Editor - Spell check while ignoring HTML markup
- Form Validation - Validate text input fields for spelling errors
- Accessible Text Input - Provide context menu for easy error correction
Sample Applications
GitHub samples: WPF SpellChecker Examples