2009-01-23 5 views
1

Ce que j'essaie de créer est un éditeur de texte soutenu par un document XML. Ce document sera lu dans un modèle de domaine que je veux ensuite autoriser à éditer. Certains des traits que je recherche sont:Conseils sur l'éditeur de texte pour le format de document personnalisé ou le modèle de domaine

  • Afficher uniquement le contenu textuel et pas besoin échappe à un lien texte modèle de domaine (veulent éviter de montrer tout type de balisage)
  • Les types de sections peuvent avoir différents formatage (nom de police, taille de police, etc.)
  • Capacités d'édition habituelles (navigation, couper/coller, surligner)
  • Vous pouvez mapper les modifications dans l'éditeur sur le modèle de domaine.

Cette liste n'est pas exhaustive, mais les options que j'ai examinées sont celles qui éliminent les contrôles tiers. J'ai regardé un certain nombre d'éditeurs de texte (Aspose.Editor, TX Text Control et quelques autres.) Ils supportent naturellement les capacités d'édition et de formatage. Je n'ai pas encore trouvé celui qui vous donne un moyen de créer une sorte de lien entre le texte et un modèle de domaine personnalisé pour migrer les modifications en arrière. Pouvoir accéder à leur DOM pourrait rendre cela possible, mais je n'ai vu aucun contrôle qui supporte cela.

J'ai regardé écrire un éditeur. Cela me permettrait de maintenir un lien entre le texte à l'écran et notre modèle de domaine. Malheureusement, cela coûte cher d'écrire tout le code pour la mise en page du texte et la gestion des événements pour la navigation et l'édition de base. Cela ressemble beaucoup à réinventer la roue.

Comme point de départ, j'ai envisagé de forker depuis l'éditeur ShardDevelop. Cependant, je m'inquiète des complications potentielles pour notre application commerciale et la licence LGPL. Bien que cela semble actuellement ma meilleure option, mais ne pense pas que le côté commercial serait acceptable avec tout le code étant open source. Si je comprends bien, étant LPGL nous pourrions étendre l'éditeur pour nos besoins et seulement rendre cette source disponible. Malheureusement, devoir le découpler plus explicitement de notre modèle de domaine compliquera nos efforts.

Ma question se résume à, est-ce que quelqu'un connaît d'autres options à considérer?

Mise à jour 1: Expérimentation de RichTextEditor dans WPF. Jusqu'à présent, il semble assez proche de ce dont j'ai besoin. J'ai un prototype de code qui convertit de mon DOM vers un FlowDocument. Il me permet de sous-classer les éléments de contenu et quand il les sépare utilise même mon type personnalisé. Un inconvénient à ce jour est qu'il ne copie aucun de mes membres de classe dans mon type personnalisé. Actuellement en train de chercher des moyens d'en définir un qui interdit l'édition directe.

Répondre

1

J'ai utilisé Actipro Syntax Editor. C'est assez puissant et personnalisable. Vous pouvez définir vos propres langues et il existe déjà un certain nombre de packs de langues principales.

+0

C'est un que j'ai regardé, cependant, il ne m'a pas vraiment posé l'idée de créer un analyseur de langue à partir d'un fichier xml. Si je le faisais, serait-il possible de l'empêcher d'afficher les tags? – toad

Questions connexes