c# - 在绑定(bind)中包含链接

标签 c# xaml windows-phone-8.1

我正在 LocalizedResources 中绑定(bind)文本(适用于各种语言),并且我需要在该文本中包含链接。不幸的是,当我像这样绑定(bind)它时,我无法在其中包含链接:

<TextBlock TextWrapping="Wrap" Text="{Binding Path=LocalizedResources.AboutText, Source={StaticResource LocalizedStrings}}"/>

所以我基本上想在该文本链接 block 中制作一些单词。这可能吗?

编辑:我需要这样的东西 enter image description here

除非我按照我所说的从 LocalizedResources 绑定(bind)此文本

最佳答案

Romasz建议,您应该使用 RichTextBox 而不是 TextBlock。您可以使用以下代码解决那里的绑定(bind):

<RichTextBox>
    <Paragraph>
        <Run Text="{Binding Path=LineFormatted}" />
    </Paragraph>
</RichTextBox>

对于超链接,您可以使用 C# 浏览整个文本,然后将链接与文本分开(您可以使用类似 --- 的内容,并且您知道每当文本中出现 --- 时,您就拥有了超链接)。

获得文本和超链接后,可以使用以下代码将它们添加到 RichTextBox:

Run myRun = new Run();
myRun.Text = "Displaying text with ";
Hyperlink link = new Hyperlink();
link.Inlines.Add("hyperlink");
link.NavigateUri = new Uri("https://stackoverflow.com/");
link.TargetName = "_blank";
link.Foreground = new SolidColorBrush(Colors.Blue);

Paragraph myParagraph = new Paragraph();
myParagraph.Inlines.Add(myRun);
myParagraph.Inlines.Add(link);

myRun = new Run();
myRun.Text = " and with some text after the link.";
myParagraph.Inlines.Add(myRun);
rtb.Blocks.Add(myParagraph);

其中 rtb 是我的 RichTextBox 的名称。

关于c# - 在绑定(bind)中包含链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25192454/

相关文章:

c# - 如果 C# 中的关键字未在系统类中定义,那么它们在 CLR 中的哪里?

c# - 网站大修后重定向旧网址

c# - 小于和大于需要在 C# 正则表达式中转义吗?

c# MVVM ViewModel 数据在每次访问 View 时都会重置

silverlight - 如何将 Windows Phone 8.1 Silverlight 应用程序发布到 Windows Phone 商店?

c# - 扫描上传的文件 C# ASP.net

c# - 不同 DataGrid 行的不同选择颜色

c# - 项目控制 : Change Property Of Control in ItemControl Based On "Content" of Control

c# - AutoSuggestBox 显示属性名称而不是值

c# - 从 Universal 8.1 App 的 App.xaml 中的共享项目访问 Windows Phone 项目中的 ResourceDictionary