2010-01-20 7 views
1

J'ai examiné les fonctionnalités du contrôle RichTextBox dans Silverlight 4.Comment charger et enregistrer du contenu à partir d'un contrôle Silverlight 4 RichTextBox?

Ce que je n'ai pas encore trouvé, ce sont des exemples de chargement et d'enregistrement de contenu dans RichTextBox.

Quelqu'un en trouve-t-il ou peut-il faire la lumière?

Le contrôle a un BlocksCollection dans lequel je suppose que l'on peut utiliser le XamlReader pour charger un groupe de balisage en supposant que ce balisage a un seul nœud de niveau supérieur de type Block. Ajoutez ensuite ce bloc à la collection Blocks. Il semble dommage que RichTextBox dérange d'avoir une "collection" dans ce cas, pourquoi ne pas simplement un élément de haut niveau Block?

Toujours le même qui laisse toujours le contenu d'un RichTextBox, je ne sais pas par où commencer? Je suis sûr que je dois manquer l'évidence ici mais à moins que le chargement et l'enregistrement de données dans et depuis RichTextBox soient au moins possibles sinon faciles, je ne vois pas comment nous pouvons réellement le mettre en service.

Modifier

Merci à la réponse de DaveB Je trouve la discussion de ce qu'on appelle le DocumentPersister. Cependant, aucune référence à cette classe ne peut être trouvée dans la documentation MSDN, et je ne peux pas la trouver dans les DLL installées via la recherche dans le navigateur d'objets. Quelqu'un, n'importe qui?

+0

@Anthony - J'ai édité ma réponse pour inclure où vous pouvez trouver la classe DocumentPersister. – DaveB

Répondre

2

Vérifiez ce tutorial sur le contrôle RichTextArea. Le contenu persistant est décrit dans l'exercice 2, tâche 3. Le code du didacticiel inclut une classe d'assistance.

Edit: La question a été posée au sujet de la classe DocumentPersister référencé dans le tutoriel. Il se trouve dans le téléchargement du code source pour le tutoriel. Je pense que l'auteur l'a créé. En regardant le code, vous aurez une idée de la persistance de vos données. Le seul inconvénient était que si vos données contenaient des images, la classe d'assistance ne les supportait pas. Voici le lien vers le téléchargement.

http://ecn.channel9.msdn.com/o9/learn/Silverlight4/Labs/TextEditor/Source.zip

+0

Merci Dave c'est un pas dans la bonne direction, maintenant si seulement je pouvais réellement trouver ce DocumentPersister dont parle cet article. – AnthonyWJones

+0

Merci, donc la réponse est Silverlight 4 dans sa version bêta actuelle ne fournit aucun moyen de charger ou enregistrer "contenu RichTextArea", il faut recourir à l'écriture soi-même ou en téléchargeant une source de quelqu'un d'autre. J'espère qu'ils vont trier ça par temps RC. – AnthonyWJones

+0

Il y a une erreur dans cet exemple (sauf si elle a été corrigée récemment) où les TextDecorations ne sont pas sauvegardées - ce qui dans Silverlight est juste Souligné. J'ai un tutoriel sur http://cespage.com/silverlight/sl4tut14.html qui contient une correction à ceci (en VB) pour enregistrer le paramètre TextDecorations, dont il devrait être possible d'inférer la correction pour la version C# mentionnée ici . – RoguePlanetoid

1

Méfiez-vous d'investir trop dans Silverlight 4 RichTextArea jusqu'à ce qu'il soit confirmé qu'il appuiera toutes les fonctionnalités RichEdit comme des points balles/listes etc qui il le fait actuellement dans SL Beta 1 ... bien que je Je suis sûr que ce sera dans RTM?

+1

Cela est un bon point que RichTextArea est toujours en version bêta. J'ai rencontré un problème qui, selon l'équipe du produit Silverlight, a été résolu dans la version RM. Il va au moins soutenir ce qu'il a actuellement et, espérons-le, en ajouter d'autres - mais ce sera inconnu. MIX2010 est en Mars où tous les détails sur la version complète seront au moins mentionnés - si non confirmé, y compris les fonctionnalités de RichTextArea, des exemples, etc. – RoguePlanetoid

0

J'ai un échantillon de Microsoft pour persister le contenu que je dois trouver que je ferai demain. J'ai eu cet échantillon en octobre quand la version bêta 4 n'était même pas annoncée en raison de l'absence de tutoriels. Depuis ce projet, je n'ai pas travaillé sur Silverlight donc je ne sais pas combien de tutoriels sont disponibles maintenant.

ok Je l'ai trouvé. Où dois-je le télécharger?

0

Une option de chargement du texte dans RichTextBox est d'utiliser XamlReader.En fonction du texte que vous avez l'intention de charger, il se peut que vous deviez ajouter un tag autour de lui

public class TextToXamlConverter 
{ 
    private const String ParaHead = "<Paragraph xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\">"; 
    private const String ParaTail = "</Paragraph>"; 

    static public Paragraph Convert(string text) 
    { 
     String formattedText = ParaHead + text + ParaTail; 
     Paragraph p = (Paragraph)XamlReader.Load(formattedText); 
     return p; 
    } 
} 
Questions connexes