Suj*_*jiz 6 windows-phone-7 windows-phone-7.1
我有一个包含链接的文本框.文本中的内容是在运行时生成的.我的问题是文本中的链接是不可点击的,如何使文本块内的所有链接都可以点击,这样当我点击链接时应该打开web浏览器.在android中我们可以使用autolink设置它.这样的选项在wp7或wp7.1芒果中可用吗?
Cla*_*sen 12
使用HyperLink.
<TextBlock>
<Run>Pure Text</Run>
<Hyperlink Command="{Binding HyperLinkTapped}">http://google.com</Hyperlink>
<Run>Pure Text Again</Run>
</TextBlock>
Run Code Online (Sandbox Code Playgroud)
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();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8830 次 |
最近记录: |