将WPF文本设置为TextBlock

Ela*_*lad 7 c# wpf xaml textblock flowdocument

我知道TextBlock可以提出一个FlowDocument,例如:

<TextBlock Name="txtFont">
     <Run Foreground="Maroon" FontFamily="Courier New" FontSize="24">Courier New 24</Run>
</TextBlock>
Run Code Online (Sandbox Code Playgroud)

我想知道如何将FlowDocument存储在变量中的一个设置为a TextBlock.我正在寻找类似的东西:

string text = "<Run Foreground="Maroon" FontFamily="Courier New" FontSize="24">Courier New 24</Run>"
txtFont.Text = text;
Run Code Online (Sandbox Code Playgroud)

但是,上面代码的结果是XAML文本显示为未解析.


编辑:我想我的问题不够明确.我真正想要达到的目的是:

  1. 用户将一些文本输入到RichTextBox中.
  2. 应用程序FlowDocumentRichTextBox保存用户输入,并将其序列化到磁盘.
  3. FlowDocument从磁盘到可变反序列化文本.
  4. 现在,我希望能够以一种方式呈现用户文本TextBlock.

因此,据我所知,创建一个新的Run对象并手动设置参数将无法解决我的问题.


问题是序列化RichTextBox会创建Section对象,我无法将其添加到TextBlock.Inlines.因此,无法将反序列化的对象设置为TextBlock的TextProperty.

Blo*_*nty 5

创建并添加对象如下:

        Run run = new Run("Courier New 24");
        run.Foreground = new SolidColorBrush(Colors.Maroon);
        run.FontFamily = new FontFamily("Courier New");
        run.FontSize = 24;
        txtFont.Inlines.Add(run);
Run Code Online (Sandbox Code Playgroud)

  • run.Foreground = Brushes.Maroon; (3认同)

Tho*_*que 3

我知道 TextBlock 可以呈现 FlowDocument

什么让你有那个想法 ?我不认为这是真的... a 的内容TextBlockInlines属性,它是一个InlineCollection。所以它只能包含Inlines... 但在 a 中FlowDocument,内容是Blocks属性,其中包含 的实例Block。并且 aBlock不是一个Inline