从点击的超链接获取文本

本文关键字:获取 取文本 超链接 | 更新日期: 2023-09-27 18:08:04

我使用下面的代码创建了一些超链接:

 public Class_List()
{
    InitializeComponent();
    StackPanel myStackPanel = new StackPanel();
    TextBlock txt = new TextBlock();
    txt.Foreground = Brushes.Black;
    txt.FontFamily = new FontFamily("03SmartFontUI");
    txt.FontSize = 25;
    txt.Margin = new Thickness(0, 5, 0, 5);
    Run run = new Run(className);
    Hyperlink link = new Hyperlink(run);                                    
    link.Click += Link_Click;                                               
    txt.Inlines.Add(link);
}

现在,我想获取超链接的文本并将其存储在字符串s中:

private void Link_Click(object sender, RoutedEventArgs e)
{
    string s = (sender as Hyperlink).Inlines.ToString();
    Class_Page class_page = new Class_Page();
    NavigationService.Navigate(class_page);
}

但是我得到的不是超链接文本,而是

System.Windows.Documents.InlineCollection

从点击的超链接获取文本

您正在获得该类型,因为您实际上正在访问Inline s的整个集合,而不是您正在寻找的Inline。访问Run文本的最快方法是在HyperlinkInlineCollection中作为第一个Inline使用:

((sender as Hyperlink).Inlines.FirstInline as Run).Text;