0

我有一个由 ObservableCollection 填充的图像列表。这是通过将 ListBox 的 ItemsSource 绑定到后面代码中的 Collection 来完成的。一切正常,尽管生成的图像列表看起来并不漂亮。目前,图像被包裹在一个水平 WrapPanel 中,这是我想要保留的功能。但问题在于,根据从 CameraCaptureTask 拍摄的图像是横向还是纵向模式,在视图中呈现时它要么非常宽要么非常高。我希望能够调整这些图像的大小,同时保持纵横比不变。也许将宽度或高度的限制设置为不超过 128。我将如何在以下代码中执行此操作?另外,图像会知道保持纵横比吗?例如,

主页.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>
4

1 回答 1

0

您可以设置您ItemTemplate喜欢的@tanuj_loop 建议,但我建议您也可能将项目嵌入 aViewBox并将您的尺寸更改应用到它而不是直接应用到图像,以确保您保留图像的分辨率但获得您所追求的尺寸限制,就像这样;

<ListBox.ItemTemplate>
   <DataTemplate>
    <ViewBox MaxHeight="128" MaxWidth="128">
            <Image Source="{Binding }"/>
        </ViewBox>                                    
   </DataTemplate>
</ListBox.ItemTemplate>

通过这种方式,您ViewBox可以为您处理所有潜在的调整大小问题,并且您的图像仍然会像您想要的那样清晰。

希望这可以帮助。

于 2013-08-01T14:32:48.927 回答