在TextBlock中插入超链接

时间:2011-07-29 09:41:07

标签: c# wpf wpf-controls

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

当我在TextBlock中插入文本然后在我的Hyperlink-Button中插入文本时,我的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);

2 个答案:

答案 0 :(得分:1)

为什么不在文本之后添加HyperLink,方法是替换StackPanel中的两个项目?

答案 1 :(得分: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控件可能是一个值得考虑的好选择。