如何在WPF中从C#获取HyperLink文本?

我有一个WPF Hyperlink ,我正在尝试从中获取文本内容。

例如:

  Customers  

使用通常的方式访问Text属性或使用VisualTreeHelper获取某些子文本元素是不可能的,因为Hyperlink不是可视元素。 我试图从FirstInline获取文本,但这也没有给我文本。

如何在运行时从上面示例中的Hyperlink元素获取值“Customers”?

如果您确实需要获取Hyperlink包含的文本,您可以深入了解它公开的Inlines属性并获取它。

 var run = HLCustomers.Inlines.FirstOrDefault() as Run; string text = run == null ? string.Empty : run.Text; 

请注意,这仅适用于Hyperlink的第一个内联确实是Run 。 对于更复杂的情况,您可以使用此示例进行finagle。

只需将TextBlock放入其中并享受其绑定灵活性。

如果它仍然不适合你 – 使用Run.Text属性,这是完全适合Hyperlink解决方案

添加文本块是一个问题吗?

   Customers   

然后你可以将其引用为:

 var text = HLCustomersContent.Text; 

WPF超链接对象上的.Text属性设置为internal,因此除非您覆盖它并公开text属性,否则它不像您想要的那样容易访问。