c# - 将 WPF 文本设置为 TextBlock

标签 c# wpf xaml textblock flowdocument

我知道 TextBlock 可以呈现一个 FlowDocument,例如:

<TextBlock Name="txtFont">
     <Run Foreground="Maroon" FontFamily="Courier New" FontSize="24">Courier New 24</Run>
</TextBlock>

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

string text = "<Run Foreground="Maroon" FontFamily="Courier New" FontSize="24">Courier New 24</Run>"
txtFont.Text = text;

但是,上述代码的结果是 XAML 文本未解析。


编辑:我想我的问题不够清楚。我真正想要实现的是:

  1. 用户在 RichTextBox 中输入了一些文本。
  2. 应用程序将来自 RichTextBox 的用户输入保存为 FlowDocument,并将其序列化到磁盘。
  3. FlowDocument 从磁盘反序列化为变量 text
  4. 现在,我希望能够在 TextBlock 中显示用户文本。

因此,据我所知,创建一个新的Run对象并手动设置参数并不能解决我的问题。


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

最佳答案

如下创建并添加对象:

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

关于c# - 将 WPF 文本设置为 TextBlock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1673192/

相关文章:

WPF Stretch ListBox Height 100% of Grid.Row?

c# - 如何将 Application.Resources 移动到外部程序集?

c# - 如何连接 xaml 和 xaml.cs 文件

c# - 设置 ExclusionNestedObjects 时,FluentAssertions 导致 ObjectDisposeException

c# - C# 中的 OrientDB 连接池

c# - 在不播放的情况下获取视频时长?

c# - 无法从文本文件加载带有 xml 实体的流文档

c# - 递增文件夹名称,例如 C# 中的 5.0.0.x

c# - 来自字符串的 IValueConverter

wpf - WPF重复元素