2010-03-02 9 views

Antwort

3

Es gibt keine eingebaute Möglichkeit, das zu tun. Sie können die Eigenschaft Angehängte Texteigenschaften erstellen und an sie binden, wie oben beschrieben here

+3

Die bereitgestellten Link zu WPF spezifisch ist. Die RichTextBox in Silverlight enthält keine Document-Eigenschaft. –

+0

Ich möchte Steves Kommentar hinterfragen. –

0

Dies kann nicht durchgeführt werden, Sie müssen es manuell aktualisieren. Dokument ist keine DependencyProperty.

3

Hier ist die Lösung, die ich gefunden habe. Ich habe eine benutzerdefinierte RichTextViewer-Klasse erstellt und von RichTextBox geerbt.

using System.Windows.Documents; 
using System.Windows.Markup; 
using System.Windows.Media; 

namespace System.Windows.Controls 
{ 
    public class RichTextViewer : RichTextBox 
    { 
     public const string RichTextPropertyName = "RichText"; 

     public static readonly DependencyProperty RichTextProperty = 
      DependencyProperty.Register(RichTextPropertyName, 
             typeof (string), 
             typeof (RichTextBox), 
             new PropertyMetadata(
              new PropertyChangedCallback 
               (RichTextPropertyChanged))); 

     public RichTextViewer() 
     { 
      IsReadOnly = true; 
      Background = new SolidColorBrush {Opacity = 0}; 
      BorderThickness = new Thickness(0); 
     } 

     public string RichText 
     { 
      get { return (string) GetValue(RichTextProperty); } 
      set { SetValue(RichTextProperty, value); } 
     } 

     private static void RichTextPropertyChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs) 
     { 
      ((RichTextBox) dependencyObject).Blocks.Add(
       XamlReader.Load((string) dependencyPropertyChangedEventArgs.NewValue) as Paragraph); 

     } 
    } 
} 
24

Sie haben die einfachere Antwort hier bekommen:

Silverlight 4 RichTextBox Bind Data using DataContext und es wirkt wie ein Zauber.

<RichTextBox> 
    <Paragraph> 
    <Run Text="{Binding Path=LineFormatted}" /> 
    </Paragraph> 
</RichTextBox> 
+2

Dies funktioniert auch in Windows 8/8.1 XAML. Vielen Dank!! – dex3703

+1

Einfache, aber effektive Lösung, Brilliant – DNKROZ

+4

Als @ dex3703 sagte, das funktioniert in WPF mit der Syntax: ' ' – maxp

1

Sie können die InlineUIContainer-Klasse verwenden, wenn Sie eine XAML-Steuerelement innerhalb eines Inline binden möchten getippt Steuer

Verwandte Themen