2012-03-24 4 views
2

Ich baue eine Windows 8 U-Bahn-App für Spaß/Lernen etc.
Ich habe eine Listenansicht von Textelementen erstellt, die Beschreibungen, Bilder usw. Innerhalb der Beschreibung gibt es oft Hyperlinks, die ich anklickbar machen möchte.Binding Hyperlink zu Richtextblock in Windows 8 Metro App

Wenn jedoch an einen Textblock gebunden wird, wird XAML-Hyperlink-Code als Text angezeigt. Wenn ich in der Nähe suche, muss ich einen Richtextblock für Hyperlinks verwenden. Ich kann nicht herausfinden, wie man einen Hyperlink an ihn bindet. Ich habe viele Beispiele aus WPF gefunden, die zeigen, wie man den Richtextblock mit FlowDocument erweitert. Flowdocument ist in der aktuellen Consumer-Vorschauversion des Frameworks nicht vorhanden.

Ich bin bemüht herauszufinden, ob jemand dieses Problem gelöst hat oder irgendwelche Vorschläge hat, welchen Weg man gehen soll.

Edit: -Code Derzeit habe ich

jetzt ich gerade die Bindung das „Text“ Feld von meinem Status-Objekt zu einem Textblock auf „Text“ Bindung

Ich habe URL in dem Textfeld der Ich möchte klickbar machen können.

Als Test ich ersetzte das Textfeld des ersten Objekts mit Hyperlink Markup

ab. feed_results [0] .text = "<hyperlink .....

dann zu binden versucht inline zu texblock und richtextblock

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> 

Backend-Code

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

Können Sie uns den Code zeigen, den Sie derzeit haben? – svick

+0

In WPF/Silverlight würde ich einen HyperlinkButton verwenden, wenn der Link einfach genug ist (nur ein Text oder ein Bild). Vielleicht ist es auch in der Metro verfügbar? (Ich habe mein VS11 nicht griffbereit). – jv42

Antwort

3

Microsoft entfernt Unterstützung für Hyperlinks von Metro XAML Sie können immer nochverwendenfür nicht integrierte Hyperlinks oder wenn Ihre eingebetteten Hyperlinks kurz sind (1-2 Wörter), können Sie HyperlinkButton innerhalb von InlineUIContainer in RichTextBlock platzieren. Spätere Lösung würde etwas Code erfordern, nur mit Bindung wird es nicht tun.

+0

Ich hoffe, sie haben es wieder eingefügt. –

Verwandte Themen