我有一個文本框包含鏈接。文本中的內容是在運行時生成的。我的問題是文本內的鏈接不可點擊,如何才能使文本塊內的所有鏈接都是可點擊的,所以當我點擊一個鏈接時,它應該打開網頁瀏覽器。在android中,我們可以使用autolink來設置它。這樣的選項是可用的wp7或wp7.1芒果?如何設置在wp7中可點擊的文本塊中的鏈接
6
A
回答
12
使用HyperLink。
<TextBlock>
<Run>Pure Text</Run>
<Hyperlink Command="{Binding HyperLinkTapped}">http://google.com</Hyperlink>
<Run>Pure Text Again</Run>
</TextBlock>
這是從Windows Phone 7.1(芒果)支持。
如有必要,您可以在運行時根據您的數據創建自己的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();
}
2
沒有內置的功能來做到這一點。
如果您的文本(包括鏈接)是HTML,則可以將其顯示在WebBrowser控件中。
如果沒有,您需要解析文本並自行構建鏈接。 (WrapPanel內的TextBlocks和HyperlinkButtons的組合可能是這樣做的方式。)
+0
沒有理由再使用HyperlinkButton ;-) –
2
在Silverlight中的RichTextBox控逆變可以幫助你。
<RichTextBox>
<Paragraph>
<Run Text="This have to navigate me to Google: "/>
<Hyperlink NavigateUri="http://google.com" TargetName="_blank">google.com</Hyperlink>
</Paragraph>
</RichTextBox>
+0
完美 - 謝謝! –
相關問題
- 1. 如何在可點擊的文本視圖中設置超鏈接? Android Java
- 2. 如何設置鏈接網址+可點擊文本
- 3. mailapp腳本中的可點擊鏈接
- 4. 在電子郵件android中設置可點擊的鏈接
- 5. Qt設置行編輯文本鏈接點擊鏈接?
- 6. 如何在iOS應用程序設置中顯示可點擊的鏈接?
- 7. obective-C中可鏈接的文本塊
- 8. 如何在站點地圖中添加鏈接時設置鏈接文本?
- 9. PHP - 的preg_replace - 文本鏈接的可點擊的鏈接
- 10. 如何設置_geoLoc.City等的文本塊上的按鈕點擊
- 11. 如何在UILabel中設置超鏈接iphone中的文本
- 12. 如何在jsp中點擊一次後設置過期鏈接
- 13. 如何配置SMS中的可點擊鏈接?
- 14. 只有鏈接框中的文本是可點擊的
- 15. UIAlertView中可點擊鏈接
- 16. 文本轉換網址鏈接到可點擊的鏈接
- 17. 如何將文本框發佈爲可點擊的超鏈接?
- 18. 如何使用可點擊的超鏈接呈現文本,您可以在其中控制點擊操作?
- 19. 如何使原始文件中的鏈接可點擊
- 20. 如何點擊Selenium web驅動中的文本鏈接java
- 21. 使純文本中的可點擊鏈接
- 22. 如何在Android中的文本視圖 - appium裏面點擊文本鏈接?
- 23. 如何在QTextEdit中設置文本塊的可見性?
- 24. JTable中的可點擊的html鏈接
- 25. android - 如何設置文本的部分是可點擊的
- 26. 如何在鏈接中點擊某個div時添加文本
- 27. 設置鏈接點擊在Java-Android
- 28. 將點擊文本替換爲點擊鏈接的文本
- 29. 如何在點擊Rails中的鏈接後設置複選框的值?
- 30. 混合文本,鏈接和可點擊文本的組件
更新了一個完整的例子。 –
我正在使用7.1,這個xaml甚至沒有爲我編譯。 – Nathan
首先,它應該是'超鏈接','l'是小寫。其次,我無法獲得在7.1項目中編譯的xaml代碼... –