我有一组水平对齐的图像。包含ListBox
完全填充父控件。现在,通过调整父控件的大小来调整图像的大小。我认为ListBoxItem
dosn调整自己的高度以适应ListBox
的大小。
我的ListBox代码
<ListBox ItemsSource="{Binding Path=Pages}"
VerticalContentAlignment="Stretch"
KeyboardNavigation.IsTabStop="False"
Height="Auto" MinHeight="120">
<ListBox.ItemTemplate>
<DataTemplate>
<Image Source="{Binding Path=PageThumbnail}" Stretch="Uniform/>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
答案 0 :(得分:3)
将StackPanel
中的ItemsPanelTemplate
替换为:
<UniformGrid Rows="1"/>
然后将此属性添加到您的ListBox
:
HorizontalContentAlignment="Stretch"
编辑:发布示例,未应用任何项目绑定。
<Grid>
<ListBox
VerticalContentAlignment="Stretch"
HorizontalContentAlignment="Stretch"
KeyboardNavigation.IsTabStop="False">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Rows="1"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<Image Source="o0.gif" Stretch="Uniform"/>
<Image Source="o1.gif" Stretch="Uniform"/>
<Image Source="o2.gif" Stretch="Uniform"/>
</ListBox>
</Grid>
答案 1 :(得分:2)
诀窍就是禁用ListBox的垂直ScrollBar。无需设置任何HorizontalContentAlignment
或VerticalContentAlignment
。也无需在Image控件上设置Stretch="Uniform"
,因为这是默认值。
<ListBox ScrollViewer.VerticalScrollBarVisibility="Disabled" ...>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Image Source="{Binding PageThumbnail}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>