Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Thomas Lebrun

Tout sur WPF, LINQ, C# et .NET en général !

Actualités

[WPF] SpellCheck: La correction orthographique de WPF

Faire du Silverlight, c'est pas mal mais je tenais à vous reparler un peu de WPF (Windows Presentation Foundation), une de mes grandes passions (avec LINQ Smile)

WPF est livré, en standard, avec des fonctionnalités de correction orthographique (SpellCheck)  pour les contrôles de saisie de texte:

  • TextBox
  • RichTextBox

Pour activer la correction orthographique, il vous suffit de mettre à True l'attribut/propriété SpellCheck.IsEnabled:

<StackPanel x:Name="LayoutRoot">

    <TextBox x:Name="tb" SpellCheck.IsEnabled="True" />

</StackPanel>

Une fois cette propriété activée, la correction orthographique est automatiquement activée et dès lors qu'un mot est mal écrit dans la zone de texte, celui-ci est souligné en rouge:

image

En faisant un clic droit sur le mot souligné en rouge (autrement dit le mot qui n'est pas correctement écrit), vous avez la possibilité de faire apparaitre une menu contextuel qui vous affiche une liste de suggestions possibles:

image

Si vous cliquez sur l'un des mots proposés dans cette liste, le mot que vous avez choisi remplace alors le mot de la zone de texte.

Vous pourriez vous demander (et vous auriez tout à fait raison) d'où provient cette liste de suggestions. En fait, il s'agit d'une copie du dictionnaire utilisé par Office 2007. Attention, il s'agit d'une copie par conséquent, vous n'êtes pas obligé de posséder Office 2007 pour que cela fonctionne Wink

De plus, vous devez savoir qu'il n'est, pour le moment, pas possible de changer le dictionnaire utilisé par WPF pour le remplacer par votre propre dictionnaire (source de mots/données). Cette fonctionnalité n'est pas présente dans la V1 cependant, les équipes de développement réfléchissent à la possibilité de rendre cela possible dans la prochaine version de WPF.

Par défaut, WPF est livré avec 4 dictionnaires de langues: Anglais, Espagnol, Allemand et Français. Si vous voulez changer le dictionnaire en cours, vous allez devoir spécifier la valeur de l'attribut/propriété Language:

<StackPanel x:Name="LayoutRoot">

    <TextBox x:Name="tb" SpellCheck.IsEnabled="True" Language="en-US" />

</StackPanel>

Comme vous pouvez le constater, les valeurs possibles sont indiquées sous la forme de culture, autrement dit dans le format: xx-XX.

Maintenant, il est évident qu'Office 2007 n'est pas parfait et ne connait pas forcément tous les mots que vous voudriez employer (surtout s'il s'agit de mots spécifiques à votre métier).

Vous ne pouvez pas, de base, rajouter des mots dans la liste des suggestions qui s'affiche via le menu contextuel. En effet, il n'y a pas d'APIs disponibles permettant de le faire. Cependant, vous pouvez tout à fait contourner ce problème en créant votre propre menu contextuel, en récupérant la liste des suggestions proposées puis en ajoutant vos propres mots. Pour cela, il vous suffit d'utiliser le code suivant, qui permet de récupérer la liste des suggestions pour un mot mal orthographié:

void tb_ContextMenuOpening(object sender, ContextMenuEventArgs e)

{

     SpellingError error = this.tb.GetSpellingError(this.tb.CaretIndex);

 

     if (error != null)

     {

          foreach (string suggestion in error.Suggestions)

          {

               // Add suggestion to the ContextMenu

          }

               // Add your custom words to the ContextMenu

      }

}

Vous venez de personnaliser avec succès la liste de suggestion Smile

Et voila qui conclut notre petit tour du SpellCheck. Comme vous pouvez le voir, la correction orthographique disponible avec WPF est relativement complète (même si certains points sont encore manquants) et permet de réaliser, très facilement, des applications offrant la meilleure expérience utilisateur.

 

A+

 

del.icio.us tags:
 
Technorati tags:
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: lundi 28 mai 2007 09:33 par Thomas LEBRUN
Classé sous : , ,

Commentaires

Matthieu MEZIL a dit :

Excellent !

Merci pour l'info Thomas.

# mai 28, 2007 10:14

Erebuss a dit :

Foiré Tom ...

Maintenant je vais être obligé de l'activer dans la prochaine version du BO ;)

# mai 28, 2007 10:36

Tony Lootens a dit :

Bonjour,

J'ai essayé, en vain, d'activer la correction orthographique française en WPF...

Cela fonctionne uniquement en en-US ou en-GB.

Il faut savoir que mon OS Windows XP est en anglais.

Quel est l'astuce pour arriver à activer la correction orthographique française.

Vu les différents threads sur ce sujet, il semble que je ne suis pas seul avec ce souci.

Merci,

Tony

# octobre 10, 2008 09:45
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- TechDays Paris 2012 : Session pleinière jour 3 par Blog Technique de Romelard Fabrice le il y a 19 heures et 29 minutes

- Mishra Reader : un lecteur RSS très Zune Style en Open Source ! par Cyril Sansus le il y a 22 heures et 2 minutes

- [framework 4] Les Tasks et le Thread UI par Fathi Bellahcene le 02-09-2012, 00:33

- Workflow Foundation 3 a un pied dans la tombe par Blog de Jérémy Jeanson le 02-08-2012, 22:15

- TechDays Paris 2012 : Nouvelles tendances du poste de travail - Bring Your own PC par Blog Technique de Romelard Fabrice le 02-08-2012, 19:42

- TechDays Paris 2012 : System Center Service Manager 2012 Vue d’ensemble par Blog Technique de Romelard Fabrice le 02-08-2012, 17:32

- TechDays Paris 2012 : Pleinière second jour par Blog Technique de Romelard Fabrice le 02-08-2012, 16:23

- TechDays Paris 2012 : Retour d'expérience sur la mise en place d'un Cloud Privé par Blog Technique de Romelard Fabrice le 02-08-2012, 16:04

- TechDays Paris 2012 : Comment SharePoint a sauvé mes TechDays par Blog Technique de Romelard Fabrice le 02-07-2012, 23:59

- Perspective 3.0 pour Silverlight 5.0 par Perspective le 02-07-2012, 22:39