我创建了一个水平方向的列表框。当我加载内容时,在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>
答案 0 :(得分:1)
WebBrowser是一个非常昂贵的CPU和内存控件。为ListBox中的每个项创建一个单独的WebBrowser实例,仅仅因为这个原因似乎是一个坏主意。我建议您使用Html Agility Pack提取所需的字段,并将它们绑定到TextBlocks和其他控件中。您还可以更好地控制每个项目的显示。