UWP RichEditBox:如何为加载的RTF文件启用HyperLink(Document.LoadFromStream)

时间:2017-05-31 09:31:03

标签: c# xaml hyperlink uwp rtf

XAML:

<ScrollViewer x:Name="RtfEulaViewer" Grid.Row="1" VerticalAlignment="Top">
    <RichEditBox x:Name="RtfEula" IsHitTestVisible="False" IsFocusEngagementEnabled="False" IsReadOnly="True" 
         Background="{ThemeResource StandardBackground}" BorderThickness="0" TextWrapping="Wrap" />
</ScrollViewer>

代码:

StorageFile file = await StorageFile.GetFileFromPathAsync(filePath);
IRandomAccessStream stream = await file.OpenAsync(FileAccessMode.Read);
this.RtfEula.Document.LoadFromStream(TextSetOptions.FormatRtf, stream);

RTF文件中的可由Word或写字板打开时可点击的绝对或相对超链接仅显示为普通文本。

{\field{\*\fldinst HYPERLINK "http://www.microsoft.com"}{\fldrslt Microsoft}}
RTF规范中的

以蓝色显示,但也处于非活动状态。如果我移动它,鼠标指针不会改变。

加载RTF文件时,是否有办法在某些文本框中获取活动的HyperLink?

1 个答案:

答案 0 :(得分:3)

在您的代码中,您已设置IsHitTestVisible="False"。这将禁用所有输入交互。这就是您的超级链接无法点击的原因。删除此设置或将其值更改为True应该可以解决您的问题。

<RichEditBox x:Name="RtfEula" IsFocusEngagementEnabled="False" IsReadOnly="True" 
     Background="{ThemeResource StandardBackground}" BorderThickness="0" TextWrapping="Wrap" />