# What's New in TX Spell .NET for WPF 4.0

> TX Spell .NET for WPF 4.0: Hunspell hyphenation lists, Check in a given language, Arabic, Hebrew and other right-to-left dictionaries, and 46 language packages.

- **Product:** TX Spell .NET for WPF
- **Section:** Documentation
- **Kind:** Topic
- **Path:** TX Spell .NET for WPF > What's New > Older Versions > What's New in TX Spell .NET for WPF 4.0
- **2425 words**
- **Web URL:** https://docs.textcontrol.com/tx-spell-dotnet-wpf/whats-new/older-versions/0400/
- **LLMs URL:** https://docs.textcontrol.com/tx-spell-dotnet-wpf/whats-new/older-versions/0400/llms.txt
- **LLMs-Full URL:** https://docs.textcontrol.com/tx-spell-dotnet-wpf/whats-new/older-versions/0400/llms-full.txt

---

Hyphenation came to TX Spell .NET for WPF with version 4.0: the spell checker splits words at their syllables, with Hunspell hyphenation lists for many languages. The version also checks text in a language you name, supports dictionaries of right-to-left languages and keeps dictionaries in less memory, so that more of them can be loaded at once.

Version 4.0 was released on November 20, 2013, together with TX Text Control X10 (version 20.0), as the blog article [TX Text Control X10, TX Spell 4.0 and TX Barcode 3.0 Have Been Released](https://www.textcontrol.com/blog/2013/11/20/tx-text-control-x10-tx-spell-40-and-tx-barcode-30-have-been-released/) announced. The version before it is [Version 3.0](https://docs.textcontrol.com/tx-spell-dotnet-wpf/whats-new/older-versions/0300/llms-full.txt), the next one [Version 5.0](https://docs.textcontrol.com/tx-spell-dotnet-wpf/whats-new/older-versions/0500/llms-full.txt).

### Version 4.0 at a Glance

| Area | What is new |
|---|---|
| Hyphenation | [HyphenationList](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/hyphenationlist/llms-full.txt), [HyphenationListCollection](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/hyphenationlistcollection/llms-full.txt), `GetHyphenationPoint` and `GetHyphenationPoints` |
| Spell checking | `Check` and `CreateSuggestions` for a given language |
| Languages | Dictionaries of right-to-left languages such as Arabic, Farsi, Hebrew and Urdu |
| Memory | Loaded dictionaries stored in a compressed form |
| Loading | Dictionaries loaded asynchronously, [LoadDictionaryDelayed](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/dictionarycollection/loaddictionarydelayed-property/llms-full.txt) |

### Hyphenation

A *hyphenation list* is a Hunspell file that says where the words of a language may be divided. TX Spell .NET 4.0 reads these lists and returns the positions at which a word can be hyphenated:

- **The next point.** [GetHyphenationPoint](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-wpf-proofing/txspellchecker/gethyphenationpoint-method/llms-full.txt) returns the next hyphenation point of a word before a divide position.
- **All points.** [GetHyphenationPoints](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-wpf-proofing/txspellchecker/gethyphenationpoints-method/llms-full.txt) returns every hyphenation point of a word as an array.

Without a language, both methods use the default hyphenation list. With a `CultureInfo`, they use a list of that language from [HyphenationLists](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-wpf-proofing/txspellchecker/hyphenationlists-property/llms-full.txt) or from the default hyphenation lists folder.

You add a list to the `HyphenationLists` collection with [Add](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/hyphenationlistcollection/add-method/llms-full.txt), or name one of the default folder with [HyphenationLanguage](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-wpf-proofing/txspellchecker/hyphenationlanguage-property/llms-full.txt), which makes it the default list. Its default value is `"(Auto)"`, and [AvailableHyphenationLists](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-wpf-proofing/txspellchecker/availablehyphenationlists-property/llms-full.txt) names the lists found in the folder. The properties of a `HyphenationList`, such as [MinCharsAtWordBegin](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/hyphenationlist/mincharsatwordbegin-property/llms-full.txt), [MinCharsAtWordEnd](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/hyphenationlist/mincharsatwordend-property/llms-full.txt) and [HyphenateCapitalizedWords](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/hyphenationlist/hyphenatecapitalizedwords-property/llms-full.txt), set how the list divides words.

TX Text Control X10 uses these lists to hyphenate words at the end of a line when a spell checker is connected. [Hyphenation Lists](https://docs.textcontrol.com/tx-spell-dotnet-wpf/hyphenation/lists/llms-full.txt) describes the lists and their settings, [Hyphenation with TX Text Control](https://docs.textcontrol.com/tx-spell-dotnet-wpf/hyphenation/tx-text-control/llms-full.txt) the automatic hyphenation, and [Hyphenating Text in Code](https://docs.textcontrol.com/tx-spell-dotnet-wpf/hyphenation/in-code/llms-full.txt) the two methods.

### Spell Checking in a Given Language

[Check](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-wpf-proofing/txspellchecker/check-method/llms-full.txt) and [CreateSuggestions](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-wpf-proofing/txspellchecker/createsuggestions-method/llms-full.txt) gained overloads with a `CultureInfo` parameter. They check a text, or create suggestions for a word, with all dictionaries of that language: those in the dictionary collection and those in the default dictionary folder. [Incorrect Words and Suggestions](https://docs.textcontrol.com/tx-spell-dotnet-wpf/spell-checking/suggestions/llms-full.txt) uses them.

Together with TX Text Control X10, the spell checker also chooses dictionaries by the language of the text at the input position: when the language changes from English to German, a German dictionary is used. The blog article [Loading Dictionaries Dynamically in TX Spell .NET](https://www.textcontrol.com/blog/2013/12/20/loading-dictionaries-dynamically-in-tx-spell-net/) describes this, and [Multilingual Documents and Language Scopes](https://docs.textcontrol.com/tx-spell-dotnet-wpf/dictionaries/multilingual/llms-full.txt) explains it for today's version.

### Right-to-Left Languages

TX Spell .NET 4.0 supports dictionaries of languages written from right to left, such as Arabic, Farsi, Hebrew and Urdu. [Right-to-Left Languages](https://docs.textcontrol.com/tx-spell-dotnet-wpf/dictionaries/right-to-left/llms-full.txt) lists the dictionaries and shows how to check such text.

### Memory and Loading

- **Compressed dictionaries.** Loaded dictionaries are stored in memory in a compressed form, which reduces the memory TX Spell .NET needs. More dictionaries can be loaded at the same time, which matters when a document is checked and hyphenated in several languages.
- **Asynchronous loading.** Dictionaries are loaded asynchronously, so the spell checker is initialized faster.
- **Checking while a dictionary loads.** When [LoadDictionaryDelayed](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/dictionarycollection/loaddictionarydelayed-property/llms-full.txt) is `true`, a dictionary added to the `Dictionaries` collection is loaded partially, and text can be checked before it is complete. Checking is slower until the dictionary is loaded. The default value is `false`. See [Loading and Managing Dictionaries](https://docs.textcontrol.com/tx-spell-dotnet-wpf/dictionaries/managing/#check-while-a-large-dictionary-loads).

### Dictionaries and Hyphenation Lists for Download

With the release, Text Control published 46 tested packages of dictionaries and hyphenation lists for commonly used languages. Each ZIP file holds one folder for the dictionary files and one for the hyphenation list, as the blog article [TX Spell .NET 4.0: New Dictionaries and Hyphenation Lists Available](https://www.textcontrol.com/blog/2013/11/21/tx-spell-net-40-new-dictionaries-and-hyphenation-lists-available/) described. [Installing Dictionaries and Language Data](https://docs.textcontrol.com/tx-spell-dotnet-wpf/installation/language-data/llms-full.txt) covers the packages offered today.

### Service Packs

The download package holds three service pack setups of version 4.0: *TX Spell .NET for WPF 4.0 SP1.exe*, dated December 11, 2013, *TX Spell .NET for WPF 4.0 SP2.exe*, dated March 7, 2014, and *TX Spell .NET for WPF 4.0 SP3.exe*, dated October 28, 2014. These are the dates of the setup files. Service Pack 2 was announced on March 10, 2014, in the blog article [Service Pack 2 for TX Spell .NET 4.0 Released](https://www.textcontrol.com/blog/2014/03/10/service-pack-2-for-tx-spell-net-40-released/).

### New Classes, Properties, Methods and Events

The classes and members below are the ones that the What's New documentation of version 4.0 lists for TX Spell .NET for WPF. Names are relative to the `TXTextControl` namespace, and each name links to its current reference page. The list names a `Remove` method of `HyphenationListCollection`, which the assemblies of version 11.0 don't have, so it has no link. The version's feature description names a `TXSpellChecker.Hyphenation` property for the default hyphenation list; that property is `HyphenationLanguage`.

#### New Classes

- [Proofing.HyphenationList](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/hyphenationlist/llms-full.txt)
- [Proofing.HyphenationListCollection](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/hyphenationlistcollection/llms-full.txt)

#### Members by Class

| Class | Properties | Methods | Events |
|---|---|---|---|
| [Proofing.DictionaryCollection](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/dictionarycollection/llms-full.txt) | [LoadDictionaryDelayed](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/dictionarycollection/loaddictionarydelayed-property/llms-full.txt) |  |  |
| [Proofing.HyphenationList](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/hyphenationlist/llms-full.txt) | [HyphenateCapitalizedWords](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/hyphenationlist/hyphenatecapitalizedwords-property/llms-full.txt), [IsSelectedAsDefault](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/hyphenationlist/isselectedasdefault-property/llms-full.txt), [Language](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/hyphenationlist/language-property/llms-full.txt), [MinCharsAtWordBegin](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/hyphenationlist/mincharsatwordbegin-property/llms-full.txt), [MinCharsAtWordEnd](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/hyphenationlist/mincharsatwordend-property/llms-full.txt), [MinSyllablesAfterCompoundHyphenationPoint](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/hyphenationlist/minsyllablesaftercompoundhyphenationpoint-property/llms-full.txt), [MinSyllablesBeforeCompoundHyphenationPoint](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/hyphenationlist/minsyllablesbeforecompoundhyphenationpoint-property/llms-full.txt), [Name](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/hyphenationlist/name-property/llms-full.txt), [UseOnlyCompoundHyphenationPoints](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/hyphenationlist/useonlycompoundhyphenationpoints-property/llms-full.txt) |  |  |
| [Proofing.HyphenationListCollection](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/hyphenationlistcollection/llms-full.txt) | [Item](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/hyphenationlistcollection/item-method/llms-full.txt) | [Add](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/hyphenationlistcollection/add-method/llms-full.txt), [GetItem](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/hyphenationlistcollection/getitem-method/llms-full.txt), `Remove` |  |
| [Proofing.TXSpell](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/txspell/llms-full.txt) | [AvailableHyphenationLists](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/txspell/availablehyphenationlists-property/llms-full.txt), [HyphenationLanguage](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/txspell/hyphenationlanguage-property/llms-full.txt), [HyphenationLists](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/txspell/hyphenationlists-property/llms-full.txt) | [GetHyphenationPoint](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/txspell/gethyphenationpoint-method/llms-full.txt), [GetHyphenationPoints](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-proofing/txspell/gethyphenationpoints-method/llms-full.txt) |  |
| [WPF.Proofing.TXSpellChecker](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-wpf-proofing/txspellchecker/llms-full.txt) | [AvailableHyphenationLists](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-wpf-proofing/txspellchecker/availablehyphenationlists-property/llms-full.txt), [HyphenationLanguage](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-wpf-proofing/txspellchecker/hyphenationlanguage-property/llms-full.txt), [HyphenationLists](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-wpf-proofing/txspellchecker/hyphenationlists-property/llms-full.txt) | [GetHyphenationPoint](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-wpf-proofing/txspellchecker/gethyphenationpoint-method/llms-full.txt), [GetHyphenationPoints](https://docs.textcontrol.com/tx-spell-dotnet-wpf/reference/txtextcontrol-wpf-proofing/txspellchecker/gethyphenationpoints-method/llms-full.txt) |  |

### Next Steps

- [Version 5.0](https://docs.textcontrol.com/tx-spell-dotnet-wpf/whats-new/older-versions/0500/llms-full.txt): language detection.
- [Version 3.0](https://docs.textcontrol.com/tx-spell-dotnet-wpf/whats-new/older-versions/0300/llms-full.txt): the suggestion engine and the customizable dialog.
- [Hyphenation](https://docs.textcontrol.com/tx-spell-dotnet-wpf/hyphenation/llms-full.txt): hyphenation in today's version.

---

## Nearby

- **Previous:** [What's New in TX Spell .NET for WPF 5.0](https://docs.textcontrol.com/tx-spell-dotnet-wpf/whats-new/older-versions/0500/llms-full.txt)
- **Next:** [What's New in TX Spell .NET for WPF 3.0](https://docs.textcontrol.com/tx-spell-dotnet-wpf/whats-new/older-versions/0300/llms-full.txt)
