gpt4 book ai didi

c# - 将 XAML 导入 WPF RichTextBox

转载 作者:行者123 更新时间:2023-11-30 20:14:29 26 4
gpt4 key购买 nike

我有一个在 WPF Web 服务中动态构建的 WPF RichTextBox。此 Web 服务接受从第三方 silverlight RichTextBox 控件的内容中提取的 xaml 字符串。

<Paragraph TextAlignment=\"Left\"><Run FontFamily=\"Comic Sans MS\" FontSize=\"16\" Foreground=\"#FF0000FF\" FontWeight=\"Bold\" >This text is blue and bold.</Run></Paragraph>

如何将此 xaml 插入到我的 WPF RichTextBox 中?我有点理解 FlowDocument 和 Paragraph and Run 的概念,因此我可以使用下面的代码用文本填充 WPF RichTextBox,

        FlowDocument flowDocument = new FlowDocument();
Paragraph par = new Paragraph();
par.FontSize = 16;
par.FontWeight = FontWeights.Bold;
par.Inlines.Add(new Run("Paragraph text"));
flowDocument.Blocks.Add(par);
rtb.Document = flowDocument;

但我真的不想自己解析 xaml 来构建段落,因为它会变得非常复杂。有没有办法让控件知道如何解析传入的 xaml?

最佳答案

您可以使用 XamlReader 读取您的 Xaml 字符串并将其转换为控件:

string templateString = "<Paragraph xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"  TextAlignment=\"Left\"><Run FontFamily=\"Comic Sans MS\" FontSize=\"16\" Foreground=\"#FF0000FF\" FontWeight=\"Bold\" >This text is blue and bold.</Run></Paragraph>";
StringReader stringReader = new StringReader(templateString);
XmlReader xmlReader = XmlReader.Create(stringReader);
Paragraph template = (Paragraph)XamlReader.Load(xmlReader);

只需确保在模板中包含以下标记:

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 

HTH

关于c# - 将 XAML 导入 WPF RichTextBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/458141/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com