如何在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属性,否则它不像您想要的那样容易访问。