Voici la solution que j'ai trouvé. J'ai créé un custom RichTextViewer classe et héritées de RichTextBox.
using System.Windows.Documents;
using System.Windows.Markup;
using System.Windows.Media;
namespace System.Windows.Controls{publicclassRichTextViewer:RichTextBox{publicconststringRichTextPropertyName="RichText";publicstaticreadonlyDependencyPropertyRichTextProperty=DependencyProperty.Register(RichTextPropertyName,typeof(string),typeof(RichTextBox),newPropertyMetadata(newPropertyChangedCallback(RichTextPropertyChanged)));publicRichTextViewer(){IsReadOnly=true;Background=newSolidColorBrush{Opacity=0};BorderThickness=newThickness(0);}publicstringRichText{
get {return(string)GetValue(RichTextProperty);}set{SetValue(RichTextProperty, value);}}privatestaticvoidRichTextPropertyChanged(DependencyObject dependencyObject,DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs){((RichTextBox) dependencyObject).Blocks.Add(XamlReader.Load((string) dependencyPropertyChangedEventArgs.NewValue)asParagraph);}}}
Il n'est pas intégré dans la façon de le faire. Vous pouvez créer un Texte attaché à la propriété et de se lier à elle comme discuté ici
Ils ont la plus facile de réponse ici:
Silverlight 4 RichTextBox Lier les Données à l'aide de DataContext
et il fonctionne comme un charme.
<RichTextBox> <FlowDocument> <Paragraph> <Run Text="{Binding Path=MyText}" /> </Paragraph> </FlowDocument> </RichTextBox>
Voici la solution que j'ai trouvé. J'ai créé un custom RichTextViewer classe et héritées de RichTextBox.
Vous pouvez utiliser le
InlineUIContainer
de classe si vous souhaitez lier un contrôle XAML à l'intérieur d'un en ligne tapé contrôleCela ne peut pas être fait, vous devez le mettre à jour manuellement. Le Document n'est pas une DependencyProperty.
Devrait être en mesure de se produire dans SL4 RC. Voir Quel est le meilleur substitut pour FlowDocument dans Silverlight?