WPF中FlowDocument中UIElement的绝对定位

时间:2017-10-19 22:10:44

标签: c# wpf flowdocument

我希望Button出现在Hyperlink上方。如您所见,它现在是FlowDocument的一部分,位于超链接旁边!但我希望它具有绝对位置,以便它可以出现在超链接上!我怎么能这样做?

<FlowDocumentScrollViewer>
    <FlowDocument>
        <Paragraph>
            The maximum speed is
            <Hyperlink>150</Hyperlink>
            <InlineUIContainer>
                <Button>No way!</Button>
            </InlineUIContainer>
            in this road!
        </Paragraph>
    </FlowDocument>
</FlowDocumentScrollViewer>

1 个答案:

答案 0 :(得分:1)

您可以使用StackPanel“堆叠”从UIElement继承的多个对象。 Hyperlink不会继承UIElement,但您可以将Hyperlink置于ContentControl内来解决此问题。

这是一个有效的例子:

<FlowDocumentScrollViewer>
    <FlowDocument>
        <Paragraph>
            The maximum speed is
            <StackPanel>
                <Button>No way!</Button>
                <ContentControl HorizontalAlignment="Center">
                    <Hyperlink>150</Hyperlink>
                </ContentControl>
            </StackPanel>
            in this road!
        </Paragraph>
    </FlowDocument>
</FlowDocumentScrollViewer>

已编辑的代码,其中Button出现在Hyperlink的顶部(更高的z顺序)上(参见评论)。

<FlowDocumentScrollViewer>
    <FlowDocument>
        <Paragraph>
            The maximum speed is
            <Grid>
                <Button>No way!</Button>
                <ContentControl HorizontalAlignment="Center">
                    <Hyperlink>150</Hyperlink>
                </ContentControl>
            </Grid>
            in this road!
        </Paragraph>
    </FlowDocument>
</FlowDocumentScrollViewer>