Как привязать текст RichTextArea к xaml
Свяжите текст RichTextBox из Xaml
Ответы (6)
Для этого нет встроенного способа. Вы можете создать свойство с прикрепленным текстом и привязать к нему, как обсуждалось здесь
person
Arsen Mkrtchyan
schedule
02.03.2010
Приведенная ссылка относится к WPF. RichTextBox в Silverlight не имеет свойства Document.
- person Steve Wortham; 05.09.2010
Я хотел бы поддержать комментарий Стива.
- person ghost_mv; 07.03.2012
Здесь есть более простой ответ:
Silverlight 4 RichTextBox связывает данные с помощью DataContext, и это работает как шарм.
<RichTextBox>
<Paragraph>
<Run Text="{Binding Path=LineFormatted}" />
</Paragraph>
</RichTextBox>
person
m1m1k
schedule
01.02.2013
Это также отлично работает в Windows 8 / 8.1 XAML. Спасибо!!
- person dex3703; 31.01.2014
Простое, но эффективное решение, Блестяще
- person DNKROZ; 28.02.2014
Как сказал @ dex3703, это работает в WPF с синтаксисом:
<RichTextBox> <FlowDocument> <Paragraph> <Run Text="{Binding Path=MyText}" /> </Paragraph> </FlowDocument> </RichTextBox>
- person maxp; 18.03.2015
Просто к сведению для других ... это не удастся, если пользователь выполнит SelectAll и Delete, поскольку этот элемент абзаца будет удален.
- person Bill Tarbell; 20.10.2017
Вот решение, которое я придумал. Я создал собственный класс RichTextViewer и унаследовал его от 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);
}
}
}
person
e-rock
schedule
28.10.2011
Вы можете использовать InlineUIContainer
< / a> class, если вы хотите привязать элемент управления XAML внутри встроенного типизированного элемента управления
<RichTextBlock>
<Paragraph>
<InlineUIContainer>
<TextBlock Text="{Binding Name"} />
</InlineUIContainer>
</Paragraph>
</RichTextBlock>
person
Kevin Tan
schedule
11.06.2015
Этого сделать нельзя, придется вручную обновить. Документ не является DependencyProperty.
person
Ana Betts
schedule
02.03.2010
Должно быть возможно в SL4 RC. См. Что лучше всего заменить FlowDocument в Silverlight? < / а>
person
Todd Main
schedule
21.03.2010