2011-07-29 39 views
0

在WPF应用程序中我从RSS源加载新闻。内容显示在TextBlock中。这个TextBlock具有一定的大小。内容被TextTrimming方法截断。 现在我想在每个TextBlock的末尾插入一个超链接按钮。唯一的问题是我不知道我的琴弦上的位置会被切断。有没有办法解决这个问题?在TextBlock中插入超链接

当我在我的TextBlock中插入我的文本,然后超链接按钮时,我的HyperlinkBut​​ton将被剪切。我可以防止切断我的HyperlinkBut​​ton吗?

XAML码:

<TextBlock Name="myText" />

C#-Code:

Hyperlink hlink = new Hyperlink(new Run("here")); 

myText.Inlines.Clear(); 
myText.Inlines.Add(value); //description from RSS Feed 
myText.Inlines.Add(hlink); 

回答

1

为什么不只是添加超链接的文本后,在一个StackPanel更换两个项目?

+0

文本是双倍行距。相反,TextTrimming方法的(...)也应该在文本字段结尾的这个链接按钮。 – Matapolo

+0

这没有多大意义。但显然你不能在省略号和文本的其余部分之间插入超链接。相反,您应该修剪文本,添加超链接,并在必要时手动添加省略号。 –

+0

感谢您的召开。现在的困难是计算出我的文本框中可以显示多少文本,因为每个字母的大小可能不同。 – Matapolo

0

如果我明白你的要求,这是实现自己的目标的一种方式:

<StackPanel> 
    <DockPanel Width="200"> 
     <TextBlock DockPanel.Dock="Left" Text="A short description." TextTrimming="CharacterEllipsis"/> 
     <TextBlock DockPanel.Dock="Right" TextAlignment="Right"> 
      <Hyperlink NavigateUri="http://www.google.com">here</Hyperlink> 
     </TextBlock> 
    </DockPanel> 
    <DockPanel Width="200"> 
     <TextBlock DockPanel.Dock="Left" TextTrimming="CharacterEllipsis" MaxWidth="170" Text="A really long descripion of the item." /> 
     <TextBlock DockPanel.Dock="Right" TextAlignment="Right"> 
      <Hyperlink NavigateUri="http://www.google.com">here</Hyperlink> 
     </TextBlock> 
    </DockPanel> 
</StackPanel> 

enter image description here

所以DockPanel控制可能是一个不错的人选来考虑。