【发布时间】:2018-07-15 14:52:25
【问题描述】:
我的项目中有一个 ListView,我希望 ListView 中的项目能够响应地调整相对于父窗口大小的大小。这种自动大小更改就像 instagram Windows 应用程序:
gif:http://uupload.ir/files/c0rv_insta.gif
我希望能够在 DataTemplate 中指定 MaxHeight 和 MaxWidth 以便在项目达到大小限制时显示更多项目。
这是我的代码:
<ListView x:Name="ViewPosts" ItemsSource="{Binding ImageUser}" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate >
<v:StateViewPostSimple/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListView>
这是我的 DataTemplate / StateViewPostSimple:
<UserControl ....>
<Grid>
<Image Stretch="Fill" Source="{Binding Images[0].URI}" MaxHeight="150" MaxWidth="150" MinHeight="100" MinWidth="100"/>
</Grid>
</UserControl>
我设置了MaxHeight、MaxWidth和MinHeight、MinWidth,但是没有区别。
【问题讨论】:
-
关于
ItemsPanelTemplate的选择,似乎UniformGrid的行为比WrapPanel更接近您的需要。