WPF Inlines.add:防止换行

时间:2019-05-06 06:41:23

标签: wpf xaml

我在WPF项目中工作,并且是该领域的新手。 我需要以编程方式添加链接。 在链接之前和之后,我想添加一些单词。 在链接之前的文字之后,我放了换行符。 但是链接后的单词不必换行,而可以在同一行中继续。 但是我在通过“ inlines.add”添加的每个元素之后都换行了。

有解决方案吗?

这是我的代码:

        TextBlock tb = new TextBlock();

        tb.Inlines.Add("this is my prefix 
");
        Hyperlink h = new Hyperlink();
        h.NavigateUri = new System.Uri(helpLinkURL);
        h.Inlines.Add("here is link text");
        h.RequestNavigate += Hyperlink_RequestNavigate;
        tb.Inlines.Add(h);
        tb.Inlines.Add("this is my suffix");
        helpLinkPlaceHolder.Inlines.Add(tb);

我得到:

  

这是我的前缀

     

这是链接文字

     

这是我的后缀

这就是我想要得到的:

  

这是我的前缀

     

这是链接文字,这是我的后缀

2 个答案:

答案 0 :(得分:0)

尝试使用Run代替TextBlock。它具有多种特性和功能,可让您执行此操作。

答案 1 :(得分:0)

这样,您可以在后面的代码中完成此操作:

var hyperlink = new Hyperlink(new Run("here is link text"))
{
    NavigateUri = new Uri("https://google.com")
};
hyperlink.RequestNavigate += Hyperlink_RequestNavigate;

var textblock = new TextBlock
{
    Inlines =
    {
        new Run("this is my prefix"),
        new LineBreak(),
        hyperlink,
        new Run(" this is my suffix")
    }
};
placeholderContentControl.Content = textblock;

placeholderContentControl的类型为<ContentControl>


如何在XAML中执行此操作:

<Grid>
    <TextBlock Grid.Row="0">
        this is my prefix
        <LineBreak />
        <Hyperlink NavigateUri="https://google.com" RequestNavigate="Hyperlink_RequestNavigate">
            here is link text
        </Hyperlink>
        this is my suffix
    </TextBlock>
</Grid>

两者均导致请求的结果:docs