我想动态调整列表视图/项目的宽度。 因此,当用户更改App的屏幕大小时,Listview会自动调整为完美大小。 目前我正在使用adaptiv触发器,但是我必须为每个我想要支持的可能大小明确定义值。动态列表视图调整大小
<VisualStateManager.VisualStateGroups>
<VisualStateGroup>
<VisualState>
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="1000"></AdaptiveTrigger>
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="textBlockOne.(RelativePanel.Width)" Value="130" />
</VisualState.Setters>
我可以在代码隐藏中访问和操作每个其他元素。 甚至可以访问ListView标题。 因此,如果有人有访问ListView DataTemplate中的值的解决方案,那将会非常好。
像这样的事情将是真棒:
<ListView x:Name="testList">
<ListView.Header>
<StackPanel x:Name="TestListHeaderStackPanel">
</ListView.Header>
<ListView.ItemTemplate>
<DataTemplate x:Name="DataTemplatedata">
<Grid x:Name="GridTest">
.....
</Grid>
</DataTemplate>
<ListView.ItemTemplate>
<ListView>
private void OnPageSizeChanged(object sender, SizeChangedEventArgs args)
{
GridTest.ColumnDefinitions[1].Width=20;
}
我不是100%确定它适合你,但你见过UWP社区工具包吗? adaptivegridview很容易使用...也许它也涵盖了你的用例:https://developer.microsoft.com/en-us/windows/uwp-community-toolkit/controls/adaptivegridview.htm – gregkalapos
你可以定义什么“的完美大小“的意思?如果通过这你意味着屏幕宽度的一小部分,那么可以通过将ListView放入使用'*'大小的网格列与屏幕宽度成比例的方式来实现。 – ibebbs
@ibebbs你有没有一个例子,因为当我尝试它时,项目不能正确缩放,头部会。 – Olias