我使用了wrappanel来排列列表框中的图像,但在我的图片集中,一些图像具有不同的大小。有些是水平的,有些是垂直的。由于取向不同,图像之间存在一些视觉上不太好的空间。任何人都可以建议我删除这些空间吗?
感谢
我使用下面的代码,但问题仍然相同......
<ListBox Name="lstBoxMyRecentPhotos"
MaxHeight="650"
Margin="0,8,0,0"
SelectionChanged="lstImageList_SelectionChanged">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<toolkit1:VariableSizedWrapGrid ItemHeight="200" ItemWidth="230" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Border Name="brdr"
Margin="5"
BorderBrush="White"
BorderThickness="3">
<Border.Background>
<ImageBrush ImageSource="Images/capsule_image_holder.png" Stretch="Uniform" />
</Border.Background>
<Image Width="{Binding width}"
Height="{Binding height}"
Hold="imgRecent_Hold"
Source="{Binding photoUrl}"
Stretch="UniformToFill">
</Image>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
答案 0 :(得分:1)
两种方式
使图像始终拉伸UniformToFill并使用硬编码尺寸 - 这样它将统一填充已经给出的空间,所有照片将很好地使用给定空间
提供网格样式的布局面板,其中每个图块/单元格都可以 基于内容的可变大小。与WinRT类似 VariableSizedWrapGrid。
答案 1 :(得分:1)
我不知道您为VariableSizedWrapGrid使用了哪个工具包,但是您确定需要设置其ItemHeight吗?如果你不这样做会怎么样?
我个人使用Telerik的控件给我一个WrapGrid。如果您可以访问他们的控件,我可以分享一个例子。
以下是我的实现: