【问题标题】:How to remove underline from dynamically created hyperlink in xaml?如何从 xaml 中动态创建的超链接中删除下划线?
【发布时间】:2016-04-01 11:41:16
【问题描述】:

我正在为 Windows Phone 8.1/10 构建一个应用程序,我需要将 Hyperlink 放入 TextBlock 元素中。

我创建了一个TextBlock 的实例,然后在TextBlock.InlinesHyperlink 中添加了一些Run。我需要 Hyperlink 只是因为它是 Click 事件。

嗯,我成功地实现了我想做的事情。但我无法从Hyperlink 中删除Underline

我想做的是一个TextBlock,里面有可点击的区域。喜欢:

Hello **@clickablething**, how are you today?

WP8.1/WM10 Runtime 应用好像不支持TextBlock.TextDecorations

好吧,我的问题是是否有任何替代 Hyperlink 包含 Click or Tapped 事件?或者如何删除超链接的下划线?

【问题讨论】:

  • 编辑:“有人问我为什么不使用文本块的点击事件”......(首先,TextBlock 不包含点击事件,而是有点击事件。事情是我不希望 TextBlock 成为可点击元素,而是需要特定的 Run 元素在 TextBlock 元素的 InlineCollection 中可点击。)

标签: c# wpf xaml hyperlink windows-phone-8.1


【解决方案1】:

您可以为超链接创建自己的控制模板并删除此模板中的下划线。我找到了这个链接:https://msdn.microsoft.com/en-us/library/cc296242(v=vs.95).aspx

在这个模板的最后你可以看到:

<TextBlock
                      x:Name="UnderlineTextBlock"
                      Text="{TemplateBinding Content}"
                      HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                      VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                      Margin="{TemplateBinding Padding}"
                      TextDecorations="Underline"
                      Visibility="Collapsed"/>

去掉 TextDecoration="Underline" 你应该完成了。

该链接是关于 WPF 的 silverlight 版本,但在您的情况下应该是相似的。

【讨论】:

  • 是的,我知道但是:The property 'TextDecorations' was not found in type 'TextBlock'.
猜你喜欢
  • 2016-04-30
  • 2012-03-06
  • 2013-09-19
  • 2020-10-30
  • 2013-06-16
  • 1970-01-01
  • 1970-01-01
  • 2020-06-28
  • 2012-01-16
相关资源
最近更新 更多