开发。
我尝试以水平方向拉伸listview项目。 我重置了ItemContainerStyle,而horizentalalignment是strech。 这是MainPage.xaml中的所有代码。
<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;
}
以下是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>
我在6inch模拟器上测试这些代码,并添加了此示例的屏幕截图。
移动模拟器没有相同的结果。 这是不同的模拟器截图。 4inch screen shot of example 这些屏幕截图的右侧是不同的。
答案 0 :(得分:13)
我尝试以水平方向拉伸listview项目。
您需要为HorizontalContentAlignment
设置ListViewItem
属性,而不是HorizontalAlignment
。使用以下代码,ListViewItem
的内容将会延长。
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter>
</Style>
</ListView.ItemContainerStyle>
默认ListViewItem
style and template无法打开HorizontalAlignment
设置者,而是HorizontalContentAlignment
。
答案 1 :(得分:1)
我认为,这是因为ListView.ItemTemplate控件具有MaxWidth =&#34; 400&#34;属性。