我在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);
我得到:
这是我的前缀
这是链接文字
这是我的后缀
这就是我想要得到的:
这是我的前缀
这是链接文字,这是我的后缀
答案 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