我知道 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 文本未解析。
编辑:我想我的问题不够清楚。我真正想要实现的是:
- 用户在 RichTextBox 中输入了一些文本。
- 应用程序将来自 RichTextBox 的用户输入保存为
FlowDocument
,并将其序列化到磁盘。 FlowDocument
从磁盘反序列化为变量 text。- 现在,我希望能够在
TextBlock
中显示用户文本。
因此,据我所知,创建一个新的Run对象并手动设置参数并不能解决我的问题。
问题是序列化 RichTextBox 会创建 Section 对象,我无法将其添加到 TextBlock.Inlines。因此,无法将反序列化对象设置为 TextBlock 的 TextProperty。
最佳答案
如下创建并添加对象:
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/