如何单击Windows 8 RichEditBox超链接?

时间:2013-09-13 15:52:51

标签: windows-8 microsoft-metro winrt-xaml

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

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

感谢您的建议。

2 个答案:

答案 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中的内容

相关问题