1

我创建了一个水平方向的列表框。当我加载内容时,在stackpanel中stackpanel的大小会自动调整到里面存储的内容的大小。如何在列表框中实现这一点?

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

1 回答 1

1

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

http://htmlagilitypack.codeplex.com/

于 2012-04-04T13:56:47.513 回答