2012-03-24 13 views
2

楽しい/学習などのために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); 
      } 
+0

現在のコードを表示できますか? – svick

+0

WPF/Silverlightでは、リンクが単純なテキストまたはイメージの場合は、HyperlinkBut​​tonを使用します。多分それはメトロでも利用可能ですか? (私はVS11を手に入れません)。 – jv42

答えて

3

をrichtextblockしようとしているマイクロソフトは、インラインのサポートを削除しましたMetro XAMLのハイパーリンク。まだ使用できます非インラインハイパーリンクの場合は、インラインハイパーリンクが短い場合(1-2語)、InlineUIContainer内にHyperTextBlockをRichTextBlock内に配置できます。後で解決するにはいくつかのコードが必要になりますが、バインディングを使用するだけではそれができません。

+0

私は彼らがそれを戻すことを願っています。 –

関連する問題