私は基本的な匿名のTwitterアプリを開発しようとしています。私はコンテンツをクリックできるようにしたいと思っています。トゥイーターが投稿した画像など。私はまた、可能であればプロフィール画像を拡大できるようにしたいと考えています。Twitterアプリケーションでテキストのリンクをクリックできるようにするにはどうすればいいですか?
答えて
テキストにリンクを設定するには、実行時に受信したデータを操作する必要があります。あなたがもはや純粋なテキストでテキストブロックを埋めるのではなく、リンクを実際にハイパーリンクに変えるようにします。
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();
}
上記のコードの欠点は、あなたがデータバインディングを失うということです:This answerを詳細にすることを処理します。新しいテキストを追加するのではなく、既存のテキストブロックを変更するように関数を変更しようとすることもできます。後でリンクを作成するのではなく、自分のアプリケーションでつぶやきを使用し続ける場合にのみ、データコンテキストを維持してください。
これは、XAMLを動的に操作するのに慣れています。
更新:実際には、それをサポートする任意の要素のContentをUIElementにバインドできることが判明しました。だから、例えば無用のコンテナ<StackPanel Content="{Binding MyRichText}"></StackPanel>
にTextBoxの行を変更し、あなたがHyperlinkButtonが必要です画像クリッカブルを作るためにあなたのTwitterItem
...
のMyRichText
プロパティに上記のコードからあなたtextBlock
を割り当てることができます。テンプレートを変更するだけです:
<HyperlinkButton>
singleObject
</HyperlinkButton>
つまり、画像オブジェクトを囲むことができます。
ハイパーリンクボタンにはNavigateURIというプロパティがあるため、URLのイメージ(または作成者のプロファイルページなど)にバインドするだけです。
<HyperlinkButton NavigateURI="{Binding ImageSource}">
<Image Source="{Binding ImageSource}" Height="73" Width="73" VerticalAlignment="Top" Margin="0,10,8,0"/>
</HyperlinkButton>
何かがそうです。たとえば、プロファイルURLを代わりに使用する場合は、NavigateURI="{Binding ImageSource}
をNavigateURI="{Binding ProfileURL}"
に変更し、ProfileItemをTwitterItemに追加し、新しいTwitter項目を作成するURLに設定する必要があります。
これはより簡単な変更です。
- 1. QtWebViewでリンクをクリックできるようにするにはどうすればよいですか?
- 2. リンクのクリックを検出するにはどうすればいいですか
- 3. Facebookステータスで「好き」のリンクをプログラムでクリックするにはどうすればよいですか?
- 4. アプリケーションでFacebookとTwitterを開くにはどうすればいいですか?
- 5. radiobuttonForsをテキストで選択できるようにするにはどうすればよいですか?
- 6. 選択したテキストがリンクかどうかをテストするにはどうすればよいですか?
- 7. リンクをクリックしたときにクッキーを送信するにはどうすればよいですか?
- 8. リンクをクリックしたときにクラスを変更するにはどうすればよいですか?
- 9. クリックしたときにlistviewからテキスト値を取得するにはどうすればよいですか?
- 10. ユーザー名でFacebookやTwitterのアバターへのリンクを取得するにはどうすればよいですか?
- 11. ボタンをクリックしたように見えるようにするにはどうすればいいですか?
- 12. チェックボックスをクリックしたときにテキストを変更するにはどうすればよいですか?
- 13. JQuery UIオートコンプリートでこのリンクをクリック可能にするにはどうすればよいですか? Uncaught TypeError
- 14. twitterにlinqでログインするにはどうすればいいですか?
- 15. jsTreeでは、ノードのテキストをクリック可能にするにはどうすればいいですか(チェックボックスのチェック)
- 16. IEでプログラムでリンクをクリックするにはどうすればよいですか?
- 17. Twitter Bootstrap Carouselで画像へのリンクを追加するにはどうすればいいですか?
- 18. Behatでスパンをクリックするにはどうすればよいですか?
- 19. Squarespaceでhrefリンクをリダイレクトするにはどうすればよいですか?
- 20. コードブロックでwinpcapをリンクするにはどうすればよいですか?
- 21. Twitter Bootstrapを使用しているときにテキスト領域のモノスペースでテキストを作成するにはどうすればよいですか?
- 22. ボタンでテキストが途切れないようにするにはどうすればよいですか?
- 23. ローカルデータベースをtwitterに更新するにはどうすればいいですか
- 24. アンドロイドスタジオのテキストをアニメーションにするにはどうすればよいですか?
- 25. MenuItemImageをテキストで作成するにはどうすればよいですか?
- 26. UIPickerViewでテキストを取得するにはどうすればよいですか?
- 27. リストをクリック可能にするにはどうすればよいですか?
- 28. クリックをアンカータグにシミュレートするにはどうすればよいですか?
- 29. Twitterエンティティから直接Instagramリンクを取得するにはどうすればよいですか?
- 30. ブートストラップでボタンにリンクを張るにはどうすればいいですか?
もう少し詳しい情報が必要です。具体的にお聞かせください。 –
このガイドに従っています。http://weblogs.asp.net/scottgu/archive/2010/03/18 /building-a-windows-phone-7-twitter-application-using-silverlight.aspx目的のユーザーからのつぶやきを表示する基本的なアプリケーションを作成します。取得されたつぶやきのリストボックスには、時にはtwittpicなどのリンクがあります。twittpicリンクをクリックして画像を表示し、さらにユーザーのプロフィール画像をクリックして拡大することができます。ありがとう –