我有一个由ObservableCollection填充的图像列表。这是通过将ListBox的ItemsSource绑定到后面的代码中的Collection来完成的。尽管结果的图像列表看起来不漂亮,但一切都正常。目前,图像被包裹在一个水平的WrapPanel中,这是我想保留的功能。但问题在于,取决于图像是从LandscapeCaptureTask拍摄的是横向还是纵向模式,在视图中显示时,它要么非常宽,要么很高。我希望能够在保持纵横比的同时调整这些图像的大小。也许在宽度或高度上设置一个不超过128的限制。我将在下面的代码中如何做到这一点?此外,图像是否可以保持纵横比?例如,肖像图像是否知道最大高度为128,同时保持宽度小于128以保持纵横比?
MainPage.xaml中
<ListBox x:Name="Recent" ItemsSource="{Binding}" Margin="8"
SelectionChanged="recent_SelectionChanged" toolkit:TiltEffect.IsTiltEnabled="True"
ItemContainerStyle="{StaticResource MyStyle}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<toolkit:WrapPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
答案 0 :(得分:0)
您可以将ItemTemplate
设置为@tanuj_loop建议,但我建议您也可以将该项目嵌入ViewBox
并对其应用尺寸更改,而不是直接应用于图片,以确保您保留图像的分辨率,但得到你所追求的尺寸限制,所以像;
<ListBox.ItemTemplate>
<DataTemplate>
<ViewBox MaxHeight="128" MaxWidth="128">
<Image Source="{Binding }"/>
</ViewBox>
</DataTemplate>
</ListBox.ItemTemplate>
通过这种方式,您的ViewBox
会为您处理所有可能的调整大小问题,并且您的图片仍然可以像您想要的那样清晰。
希望这有帮助。