从Xaml绑定RichTextBox的文本

如何从xaml绑定RichTextArea的文本

没有内置的方法可以做到这一点。 您可以创建Text附加属性并将其绑定到此处,如此处所述

他们在这里得到了更简单的答案:

Silverlight 4 RichTextBox使用DataContext绑定数据 ,它就像一个魅力。

     

这是我提出的解决方案。 我创建了一个自定义的RichTextViewer类,并inheritance自RichTextBox。

 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); } } } 

如果要在内联类型控件内绑定XAML控件,可以使用InlineUIContainer

        

这不能做,你必须手动更新它。 Document不是DependencyProperty。

应该能够在SL4 RC中发生。 请参阅Silverlight中FlowDocument的最佳替代品是什么?