2012-04-04 31 views
1

私は水平方向を持つリストボックスを作成しました。コンテンツを読み込むと、スタックパネルではスタックパネルのサイズが自動的に内部に保存されているコンテンツのサイズに調整されます。これをリストボックスでどのように達成できますか?listboxitemのサイズを自動的に調整する方法は?

これはXAMLで私のlistboxcodeです:

<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

画像に寸法が記載されている場合、どのようなコンテンツがロードされていますか? –

+0

私は正常にナビゲートしたときにリストボックスに追加されるWebブラウザを内部に持っています。私はそれをスタックパネルに追加すると、サイズ変更されますが、指定されていない場合、リストボックスは高さをデフォルトの0.0に設定します。 それは問題です:私はそれをハードコーディングすることはできません.1つのwebviewが1000の高さ、次の多分2000年か3000年かもしれないからです。 つまり:高さを指定しません。 – GeekPeek

+0

高さを設定するとブラウザは1500と言うと、それは普通のように表示されます。 – GeekPeek

答えて

1

Webブラウザーは、CPUとメモリの両方のための非常に高価な制御です。 ListBox内の各項目のWebBrowserの個別のインスタンスを作成することは、その理由だけではあまりにも悪い考えです。 Html Agility Packを使用して、必要なフィールドを抽出し、それらをTextBlocksやその他のコントロールにバインドすることをお勧めします。また、各アイテムの表示をより詳細に制御できます。

http://htmlagilitypack.codeplex.com/

関連する問題