2016-09-20 2 views
1

Я создал несколько гиперссылок, используя код ниже:Получить текст из щелкнули Гиперссылки

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

+0

http://stackoverflow.com/questions/19645110/how-to -get-hyperlink-text-from-c-sharp-in-wpf – vinodh

+0

@Filburt извините, я забыл скопировать еще одну строку. Код, измененный выше. – syn3rgy

+1

'((отправитель как гиперссылка) .Inlines.FirstInline as Run) .Text' или что-то, что связано с первой строкой Hyperlink. – Meloviz

ответ

1

Вы получаете этот тип, потому что на самом деле вы получаете доступ ко всей коллекции Inline s, а не Inline, которую ищете. Самый быстрый способ получить доступ к Run «s текст вы используете в качестве первого Inline в Hyperlink» s InlineCollection это сделать это:

((sender as Hyperlink).Inlines.FirstInline as Run).Text; 
Смежные вопросы