2012-04-04 10 views
1

Ich habe ein Listenfeld erstellt, das horizontal ausgerichtet ist. Wenn ich den Inhalt lade, passt sich die Größe des Stackpanels im Stackpanel automatisch an die Größe des darin gespeicherten Inhalts an. Wie erreiche ich das in einer Listbox?Wie wird die Größe von Listboxitem automatisch angepasst?

Das ist mein listboxcode in XAML:

<ListBox Name="WebScrollView" 
      Grid.Row="2" 
      ScrollViewer.HorizontalScrollBarVisibility="Auto" 
      SelectionMode="Multiple" 
      ScrollViewer.VerticalScrollBarVisibility="Disabled" 
      VerticalContentAlignment="Stretch" 
      HorizontalContentAlignment="Stretch" > 
     <ListBox.ItemContainerStyle> 
      <Style TargetType="ListBoxItem"> 
       <Setter Property="VerticalContentAlignment" Value="Stretch"/> 
       <Setter Property="Height" Value="Auto" /> 
      </Style> 
     </ListBox.ItemContainerStyle> 
     <ListBox.ItemsPanel> 
      <ItemsPanelTemplate> 
       <StackPanel Orientation="Horizontal" 
          VerticalAlignment="Top" 
          HorizontalAlignment="Center" 
          /> 
      </ItemsPanelTemplate> 
     </ListBox.ItemsPanel>   
    </ListBox> 
+0

welche Inhalte Sie Last, wenn Bild die Dimensionen erwähnen? –

+0

Ich habe einen Webbrowser, der nach erfolgreicher Navigation zur Listbox hinzugefügt wird. Wenn ich es zu einem Stackpanel hinzufüge, ändert es seine Größe, aber das Listenfeld setzt die Höhe auf den Standardwert 0,0, wenn es nicht angegeben wird. Also das ist das Problem: Ich kann es nicht hart-Code, weil ein Webview 1000 in der Höhe sein kann, das nächste vielleicht 2000 oder sogar 3000. Also mit anderen Worten: Ich gebe nicht die Höhe – GeekPeek

+0

Wenn ich die Höhe von der Browser zu sagen, 1500, zeigt es als normal an. – GeekPeek

Antwort

1

WebBrowser ist eine sehr teuere Steuerung sowohl für CPU und Speicher. Das Erstellen einer separaten Instanz eines WebBrowsers für jedes Element in einer ListBox scheint aus diesem Grund allein eine schlechte Idee zu sein. Ich schlage vor, dass Sie das Html Agility Pack verwenden, um die gewünschten Felder zu extrahieren und sie an TextBlocks und andere Steuerelemente zu binden. Sie erhalten auch viel mehr Kontrolle über die Anzeige jedes Artikels.

http://htmlagilitypack.codeplex.com/

Verwandte Themen