如何在listview中拉伸listviewitem
开发者 我尝试以水平方向拉伸listview项。 我确实重置了ItemContainerStyle,并且水平对齐是拉伸的。 以下是MainPage.xaml中的所有代码如何在listview中拉伸listviewitem,listview,uwp,listviewitem,stretch,Listview,Uwp,Listviewitem,Stretch,开发者 我尝试以水平方向拉伸listview项。 我确实重置了ItemContainerStyle,并且水平对齐是拉伸的。 以下是MainPage.xaml中的所有代码 <Grid x:Name="rootGrid" HorizontalAlignment="Stretch" MinWidth="320" MaxWidth="480" Width="Auto"> <ListView x:Name="infoFlowList
<Grid x:Name="rootGrid"
HorizontalAlignment="Stretch"
MinWidth="320"
MaxWidth="480"
Width="Auto">
<ListView x:Name="infoFlowListView"
MinWidth="320"
MaxWidth="480"
Width="Auto"
HorizontalAlignment="Stretch">
<ListView.ItemTemplate>
<DataTemplate>
<local:MyUserControl1 MinWidth="300" HorizontalAlignment="Stretch"></local:MyUserControl1>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalAlignment" Value="Stretch"></Setter>
</Style>
</ListView.ItemContainerStyle>
</ListView>
</Grid>
以下是MainPage.xaml.cs中的所有代码
public MainPage()
{
var items = new List<MyUserControl1>();
for (int i = 0; i < 50; i++)
{
items.Add(new MyUserControl1());
}
this.InitializeComponent();
infoFlowListView.ItemsSource = items;
}
public主页()
{
var items=新列表();
对于(int i=0;i<50;i++)
{
添加(新的MyUserControl1());
}
this.InitializeComponent();
infoFlowListView.ItemsSource=项目;
}
以下是MyUserControl.xaml中的所有代码
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="4*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="8"></RowDefinition>
</Grid.RowDefinitions>
<Ellipse Width="60" Height="60"
Grid.Column="0" Grid.Row="0" Grid.RowSpan="3"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Stretch="Uniform">
<Ellipse.Fill>
<ImageBrush ImageSource="Assets/1.png"></ImageBrush>
</Ellipse.Fill>
</Ellipse>
<RelativePanel x:Name="topRelativePanel"
Grid.Column="1" Grid.Row="0"
HorizontalAlignment="Stretch">
<TextBlock Text="TestName"
VerticalAlignment="Bottom"
RelativePanel.AlignLeftWithPanel="True"
FontSize="12"
HorizontalAlignment="Stretch"></TextBlock>
<TextBlock Text="Author"
VerticalAlignment="Bottom"
RelativePanel.AlignRightWithPanel="True"
FontSize="12"
HorizontalAlignment="Stretch"
Margin="0,0,8,0"></TextBlock>
</RelativePanel>
<TextBlock x:Name="nameTextBlock"
Grid.Column="1" Grid.Row="1"
Text="Name"
TextTrimming="WordEllipsis"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch"
FontSize="18" >
</TextBlock>
<Grid x:Name="bottomGrid"
Grid.Column="1" Grid.Row="2"
VerticalAlignment="Top"
HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="3*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0"
HorizontalAlignment="Stretch"
Text="90"></TextBlock>
<TextBlock Grid.Column="1"
HorizontalAlignment="Stretch"
Text="48"></TextBlock>
<TextBlock Grid.Column="2"
HorizontalAlignment="Stretch"
Text="20170330 08:33"
Margin="0,0,0,0"></TextBlock>
</Grid>
<Border Background="LightGray"
VerticalAlignment="Stretch"
HorizontalAlignment="Stretch"
Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2"></Border>
我在6英寸模拟器上测试了这些代码,并添加了这个示例的屏幕截图
而移动仿真器却没有同样的结果。
下面是不同的模拟器屏幕截图。
这些屏幕截图的右侧不同。我认为,这是因为ListView.ItemTemplate控件具有MaxWidth=“400”属性 我尝试以水平方向拉伸listview项 您需要为
ListViewItem
设置HorizontalContentAlignment
属性,而不是HorizontalAlignment
。使用以下代码,ListViewItem
的内容将被扩展
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter>
</Style>
</ListView.ItemContainerStyle>
默认的
ListViewItem
不会打开HorizontalAlignment
设置程序,但是HorizontalContentAlignment
您可能在InfoListViewItemUserControl中遇到问题,并且尚未提交该代码。剩下的似乎没问题。@IvanIčin我提交了usercontrol的xaml,你能告诉我问题出在哪里吗?非常感谢。我认为下面的答案是正确的,如果你设置MaxWidth,它会使拉伸对齐无效。你能提供一个项目吗?@suntenwu MSFT我不知道如何上传项目。所以我复制了这个示例的所有代码。我删除了usercontrol的maxwidth,但是listviewitem仍然不能在水平方向上拉伸。这是我的错。非常感谢,这很有帮助!