我在我的應用程序中實現了一個簡單的twitter閱讀器。我能夠獲得 用戶的推文。但是,如果此推文中有一個網址,我無法點擊它,因爲它未被檢測爲URL。 是否有可能實現此功能,以便推文中的網址顯示爲 作爲可點擊的網址,然後啓動例如網頁瀏覽器?Clickable Url in Twitter
非常感謝您
我在我的應用程序中實現了一個簡單的twitter閱讀器。我能夠獲得 用戶的推文。但是,如果此推文中有一個網址,我無法點擊它,因爲它未被檢測爲URL。 是否有可能實現此功能,以便推文中的網址顯示爲 作爲可點擊的網址,然後啓動例如網頁瀏覽器?Clickable Url in Twitter
非常感謝您
我假設你正在使用一個TextBlock顯示鳴叫文字,正確?如果是這樣,請將其更改爲RichTextBox,並且您只需使用Run即可獲取文本,並使用Hyperlink作爲鏈接!
另外,請確保將RichTextBox的IsReadOnly屬性設置爲true以使其正常工作!
接下來,用正則表達式解析tweet文本以查找鏈接,並使用Hiperlink類在其上創建可點擊的鏈接,並在其餘文本上運行!
下面是一個示例函數,將解析鳴叫,並建立一個RichTextBox內容:
private Block ParseTweet(string tweetText)
{
var paragraph = new Paragraph();
var lastIndex = 0;
foreach (Match m in Regex.Matches(tweetText, @"(http(s)?://)?([\w-]+\.)+[\w-]+(/\S\w[\w- ;,./?%&=]\S*)?"))
{
if (m.Index > 0)
paragraph.Inlines.Add(tweetText.Substring(lastIndex, m.Index));
var hyperlink = new Hyperlink()
{
NavigateUri = new System.Uri(m.Value, System.UriKind.RelativeOrAbsolute),
TargetName = "_blank"
};
hyperlink.Inlines.Add(m.Value);
paragraph.Inlines.Add(hyperlink);
lastIndex = m.Index + m.Length;
}
if (lastIndex < tweetText.Length)
paragraph.Inlines.Add(tweetText.Substring(lastIndex));
return paragraph;
}
你應該調用這個函數像這樣:
var tweetText = @"Testing: http://twitter.com -> link for twitter";
MyRichTextBox.Blocks.Add(ParseTweet(tweetText));
我認爲這是不可能的,但是,但你可以分析你要查找的文本URL(與正則表達式),並顯示下面的文字超鏈接。
1)您搜索的URL文本與正則表達式
2)如果一個URL被發現,你創建一個HyperlinkButton與此URL
有一些鏈接,這樣的一個問題我使用了這個修改版本Regex.Matches(tweetText,@「((http(s)?//)|(www。))([\ w-] + \。)+ [\ w-] +(/ \ S \ w [\ w-;,。/?%&=] \ S *)?「) – user3057486 2014-01-08 12:42:14