gpt4 book ai didi

WPF FlowDocument 绑定(bind)

转载 作者:行者123 更新时间:2023-12-04 00:48:32 26 4
gpt4 key购买 nike

我正在使用 Microsoft 的 XAML/HTML converter将数据库中的 HTML 转换为 XAML 字符串。 Microsoft 转换器似乎正确设置了文本格式,但我无法将输出绑定(bind)到 XAML 对象。

例如,使用以下 HTML:

<span style="font-weight: bold; font-family: Georgia; color: rgb(0, 96, 144); text-decoration: underline;">Hello world.</span>

我将获得 XAML 输出:

<Section xml:space="preserve" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Paragraph>
<Run FontWeight="bold" TextDecorations="Underline" FontFamily="georgia">Hello world.</Run>
</Paragraph>

假设 HTML 作为数据库对象的“文本”属性进入 WPF 应用程序,然后我使用 Binding 和 Converters,如下所示:

<TextBlock Text="{Binding Path=ActiveDataItem.Text, Converter={StaticResource convertHTMLToXaml}}" />

不幸的是,这只是将 XAML 打印到页面,而不是对其进行解析。我假设这是因为我绑定(bind)到 TextBlock,这是预期的结果。我的问题是如何将此输出绑定(bind)到与 FlowDocument 相关的控件,如段落、运行、部分等?

注意:我发现有相当多的主题专用于将 HTML 转换为 XAML。我已经引用了其中的大部分内容,但是在这个特定步骤中都缺少它们。感谢任何帮助或链接,在此先感谢。

最佳答案

对于您的示例,您将 xaml 作为文本并绑定(bind)到文本属性。这仅将 xaml 显示为文本。

是否有直接的方法将其绑定(bind)为 FlowDocument 的内容,我不知道。由于 FlowDocument 的结构,IMO 这是不可能的。但也许有人知道一种方法并为此向您发布了解决方案。

要手动执行,请查看 this page 的示例(dead link, see Archive.org)。在那里我看到作者将 XAML 字符串加载到 RichTextBox 中。您可以根据需要更改代码(RichtTextBox 也适用于 FlowDocs)。搜索 public static class RichTextboxAssistant,有您要找的代码。注意编码。他使用 ASCII。也许您必须将其更改为 UTF。

希望这对您有所帮助。

关于WPF FlowDocument 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3662096/

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