【发布时间】:2017-06-05 02:12:09
【问题描述】:
我研究了 Google,查看了 UWP 示例,但找不到解决此问题的方法。基本上,我想要一个带有自动调整网格列大小的列表视图。例如,您有 Groove 音乐歌曲视图。我想实现这样的行为。
每当您调整 Groove 的大小时,列表视图都会通过扩展、收缩或隐藏列来调整自己的大小。我可以使用 VisualStates 和 AdaptiveTrigger 处理隐藏部分,但不知道如何处理网格的扩展/收缩。
要注意的另一件事是,每个文本框的项目都是统一的,具有相同的宽度。如果碰巧一首歌的名字比平时长,它们不会显得模糊和没有规律。
我有这个数据模板:
<DataTemplate x:Key="MediafileUnselectedTemplate">
<Grid Height="50">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<TextBlock x:Name="titleTxt" Grid.Column="0" Width="400" TextWrapping="NoWrap" TextTrimming="Clip" Text="{Binding Title}" VerticalAlignment="Center"/>
<TextBlock x:Name="artistTxt" Grid.Column="1" Width="200" Visibility="Visible" Margin="15,0,0,0" FontSize="13" Text="{Binding LeadArtist}" VerticalAlignment="Center"/>
<TextBlock x:Name="albumTxt" Grid.Column="2" Width="200" Visibility="Visible" Margin="15,0,0,0" FontSize="13" Text="{Binding Album}" VerticalAlignment="Center"/>
<TextBlock x:Name="yearTxt" Grid.Column="3" Width="100" Visibility="Visible" Margin="15,0,0,0" FontSize="13" Text="{Binding Year}" VerticalAlignment="Center"/>
<TextBlock x:Name="genreTxt" Grid.Column="4" Visibility="Visible" Margin="15,0,0,0" FontSize="13" Text="{Binding Genre}" VerticalAlignment="Center"/>
<TextBlock x:Name="durationTxt" Grid.Column="5" Visibility="Visible" Margin="15,0,0,0" FontSize="13" Text="{Binding Length}" VerticalAlignment="Center"/>
</Grid>
</DataTemplate>
我能做到的:
我可以设置MinWidths 或只是Widths 将它们设置为统一,但它们会失去适应性,只是不根据页面调整大小。
任何帮助将不胜感激!提前谢谢!
【问题讨论】: