如何自动调整listboxitem的大小?

时间:2012-04-04 13:17:42

标签: windows-phone-7

我创建了一个水平方向的列表框。当我加载内容时,在stackpanel中,stackpanel的大小将自动调整为存储在其中的内容的大小。如何在列表框中实现此目的?

这是我在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>

1 个答案:

答案 0 :(得分:1)

WebBrowser是一个非常昂贵的CPU和内存控件。为ListBox中的每个项创建一个单独的WebBrowser实例,仅仅因为这个原因似乎是一个坏主意。我建议您使用Html Agility Pack提取所需的字段,并将它们绑定到TextBlocks和其他控件中。您还可以更好地控制每个项目的显示。

http://htmlagilitypack.codeplex.com/