楽しい/学習などのためにWindows 8メトロアプリを構築しています。
説明、画像などを含むテキスト項目のリストビューを作成しました。私がクリック可能にしたいハイパーリンク。windows 8のリッチテキストブロックにハイパーリンクをバインドするメトロアプリ
ただし、テキストブロックにバインドすると、xamlハイパーリンクコードがテキストとして表示されます。 arroundを検索すると、ハイパーリンクにリッチテキストブロックを使用する必要があるようです。私はそれにハイパーリンクをバインドする方法を見つけることができないようです。私はflowdocumentを使ってrichtextblockを拡張する方法を示すwpfから多くの例を見つけました。 Flowdocumentは、現在のコンシューマプレビュー版のフレームワークには存在しません。
誰かがこの問題を解決したかどうかを確認しています。
編集: コード私は、URLのテキストフィールドには持っている現在
今私は「テキスト」
上の結合のTextBlockに自分のステータスObjectから「テキスト」フィールドを結合していますを持っています私はクリック可能にしたい。私は、ハイパーリンクのマークアップ
の元で最初のオブジェクトのテキストフィールドを置き換えた試験として
。 feed_results [0]の.text = "<hyperlink .....
はその後texblockに結合し、
XAML
<ListView x:Name="ItemListView" ItemsSource="{Binding}" Background="Black" Width="372" VerticalAlignment="Top" Margin="50,0,0,0">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" MinHeight="100">
<StackPanel Orientation="Horizontal">
<Image Source="{Binding user.profile_image_url}" Margin="0,0,15,0" VerticalAlignment="Top" />
<StackPanel Orientation="Vertical">
<TextBlock HorizontalAlignment="Left" Foreground="Gray" Text="{Binding user.name}" FontWeight="Bold" TextWrapping="Wrap" MaxWidth="200" />
<TextBlock HorizontalAlignment="Left" Foreground="Gray" Text="{Binding text}" TextWrapping="Wrap" MaxWidth="200" />
</StackPanel>
</StackPanel>
<StackPanel Margin="0,15,0,0" HorizontalAlignment="Right">
<TextBlock Text="{Binding created_at, Converter={StaticResource StringConverter},ConverterParameter=Released: \{0:d\}}" HorizontalAlignment="Center" Foreground="Gray" />
</StackPanel>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
バックエンドのコード
FeedResult<Statuses> r2 = await feed.StatusesAsync(1, 50);
if (!r2.HasError)
{
feed_results = r2.Result;
Dispatcher.Invoke(Windows.UI.Core.CoreDispatcherPriority.High, new Windows.UI.Core.InvokedHandler((o, a) =>
{
ItemListView1.ItemsSource = feed_results;
}), this, null);
}
現在のコードを表示できますか? – svick
WPF/Silverlightでは、リンクが単純なテキストまたはイメージの場合は、HyperlinkButtonを使用します。多分それはメトロでも利用可能ですか? (私はVS11を手に入れません)。 – jv42