WPF UIElements内联文字“装饰品”

时间:2009-02-27 03:20:41

标签: wpf text uielement adornment

在WPF中,如何将常规UIElement内嵌到文本中?例如,某个文本分类将使用包含特定选项的下拉列表替换文本范围。

我使用了Span,Bold,Hyperlink等对文本内联进行一些轻微修改的对象,但我希望能够做一些更激烈和自定义的事情。我可以实现一个类似的Inline对象来完成这个吗?

我正在开展一个项目,我需要一些高级文本视觉效果。具体来说,我想做一些类似于基于Visual Studio 2010 WPF的源代码编辑器。

我将有一段文字,各种组件会查看该文本,搜索具有特殊含义的文章。当它找到一个文本范围时,它将记录/标记该跨度。然后,另一组组件将覆盖分类文本,并根据其分类添加装饰。

您可以将此视为WPF的智能标记。

我真的不知道从哪里开始,WPF中有关高级文本的所有文档都是关于动画,自定义画笔,转换为几何等等...

1 个答案:

答案 0 :(得分:13)

查看InlineUIContainerBlockUIContainer课程。它们允许UIElement嵌入流内容中,例如FlowDocumentTextBlock

以下是TextBlock中内联按钮的示例:

<TextBlock>
    Some inline
    <InlineUIContainer>
        <Button Content="Hi" Click="Button_Click" />
    </InlineUIContainer>
    inside the text.
</TextBlock>