如何单击Windows 8 RichEditBox超链接?

Mrk*_*s83 2 microsoft-metro windows-8 winrt-xaml

也许这是一个愚蠢的问题,但我如何点击(并捕获点击事件)Windows 8中的链接RichEditBox.

我已经使用了链接RichEditBox.Document.GetRange(0, 10).Link = "\"foobar\"".链接本身显示在RichEditBox,但我无法点击它.

谢谢你的建议.

Ben*_*net 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});
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)