也许这是一个愚蠢的问题,但我如何在Windows 8 RichEditBox
中点击(并捕获点击事件)链接。
我使用RichEditBox.Document.GetRange(0, 10).Link = "\"foobar\""
放置了链接。链接本身显示在RichEditBox
中,但我无法点击它。
感谢您的建议。
答案 0 :(得分:6)
这是一个将链接点击事件添加到RichEditBox的助手:
public class LinkClickedEventArgs
{
public string LinkText { get; set; }
}
public class RichEditBoxWithHyperlink :RichEditBox
{
public event EventHandler<LinkClickedEventArgs> LinkClicked;
protected override void OnTapped(TappedRoutedEventArgs e)
{
base.OnTapped(e);
if (LinkClicked != null)
{
Point tappedPoint = e.GetPosition(this);
ITextRange textRange = this.Document.GetRangeFromPoint(tappedPoint, PointOptions.ClientCoordinates);
textRange.StartOf(TextRangeUnit.Link,true);
if (!string.IsNullOrEmpty(textRange.Link))
{
LinkClicked(this, new LinkClickedEventArgs(){LinkText = textRange.Link});
}
}
}
}
答案 1 :(得分:0)
RichEditBox
缺少WPF RichTextBox
的{{1}}事件。无法检测链接是否被点击。您只能通过按 ctrl 并单击链接来打开超链接。
How can I make a hyperlink work in a RichTextBox? - 这就是WPF中的内容