gpt4 book ai didi

windows-phone-7 - 如何在wp7中的可点击文本 block 中设置链接

转载 作者:行者123 更新时间:2023-12-04 13:20:44 25 4
gpt4 key购买 nike

我有一个包含链接的文本框。文本的内容是在运行时生成的。我的问题是文本内的链接不可单击,如何使文本块内的所有链接可单击,因此当我点击链接时应该打开Web浏览器。在android中,我们可以使用自动链接进行设置.wp7或wp7.1芒果中是否提供了这样的选项?

最佳答案

使用HyperLink

<TextBlock>
<Run>Pure Text</Run>
<Hyperlink Command="{Binding HyperLinkTapped}">http://google.com</Hyperlink>
<Run>Pure Text Again</Run>
</TextBlock>

Windows Phone 7.1(Mango)支持此功能。

如果需要,您可以在运行时根据数据创建自己的FlowDocument。

有关如何从字符串生成FlowDocument的示例:
private void OnMessageReceived(string message)
{
var textBlock = new RichTextBox()
{
TextWrapping = TextWrapping.Wrap,
IsReadOnly = true,
};

var paragraph = new Paragraph();

var runs = new List<Inline>();

foreach (var word in message.Split(' '))
{
Uri uri;

if (Uri.TryCreate(word, UriKind.Absolute, out uri) ||
(word.StartsWith("www.") && Uri.TryCreate("http://" + word, UriKind.Absolute, out uri)))
{
var link = new Hyperlink();
link.Inlines.Add(new Run() { Text = word });
link.Click += (sender, e) =>
{
var hyperLink = (sender as Hyperlink);
new WebBrowserTask() { Uri = uri }.Show();
};

runs.Add(link);
}
else
{
runs.Add(new Run() { Text = word });
}

runs.Add(new Run() { Text = " "});
}

foreach (var run in runs)
paragraph.Inlines.Add(run);

textBlock.Blocks.Add(paragraph);

MessagesListBox.Children.Add(textBlock);
MessagesListBox.UpdateLayout();
}

关于windows-phone-7 - 如何在wp7中的可点击文本 block 中设置链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7567600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com