Bind the text of RichTextBox from Xaml

前端 未结 6 1908
名媛妹妹
名媛妹妹 2020-12-18 19:19

How to Bind the text of RichTextArea from xaml

相关标签:
6条回答
  • 2020-12-18 19:38

    They've got the easier answer here:

    Silverlight 4 RichTextBox Bind Data using DataContext and it works like a charm.

    <RichTextBox>
      <Paragraph>
        <Run Text="{Binding Path=LineFormatted}" />
      </Paragraph>
    </RichTextBox>
    
    0 讨论(0)
  • 2020-12-18 19:41

    You can use the InlineUIContainer class if you want to bind a XAML control inside of an inline typed control

    <RichTextBlock>
    <Paragraph>
        <InlineUIContainer>
            <TextBlock Text="{Binding Name"} />
        </InlineUIContainer>
    </Paragraph>
    </RichTextBlock>
    
    0 讨论(0)
  • 2020-12-18 20:01

    Here is the solution I came up with. I created a custom RichTextViewer class and inherited from 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);
    
            }
        }
    }
    
    0 讨论(0)
  • 2020-12-18 20:02

    There is no built in way to do that. You can create Text attached property and bind to it like discussed here

    0 讨论(0)
  • 2020-12-18 20:02

    This can't be done, you have to manually update it. Document is not a DependencyProperty.

    0 讨论(0)
  • 2020-12-18 20:03

    Should be able to happen in SL4 RC. See What is the best substitute for FlowDocument in Silverlight?

    0 讨论(0)
提交回复
热议问题