Luk*_* Vo 3 layout xaml windows-phone-8.1
我有以下 XAML 代码:
<ListView Background="Blue" x:Name="lstFriends" Grid.Row="2" HorizontalContentAlignment="Stretch" >
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="VerticalContentAlignment" Value="Stretch" />
</Style>
</ListView.ItemContainerStyle>
<ListView.ItemTemplate>
<DataTemplate>
<Grid Background="Pink">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="64" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Source="ms-appx:///Assets/Logo.png" Margin="12" VerticalAlignment="Top"></Image>
<StackPanel Orientation="Vertical" Grid.Column="1">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="{Binding Path='Fullname'}" Style="{StaticResource ListViewItemSubheaderTextBlockStyle}"></TextBlock>
<Image Grid.Column="1" Source="{Binding Path='OnlineIcon'}" Width="16" Height="16" HorizontalAlignment="Right" />
</Grid>
<TextBlock Text="{Binding Path='Subtitle'}" Style="{StaticResource ListViewItemContentTextBlockStyle}" TextWrapping="WrapWholeWords" Margin="12"></TextBlock>
</StackPanel>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Run Code Online (Sandbox Code Playgroud)
我已经设置了HorizontalContentAlignment,以及ItemContainerStyle这两篇文章中的:
但是,它仍然不起作用。网格只占用TextBlocks 和Images 需要的空间。
我做错了什么?如何让网格占据所有空间,而 OnlineIcon 位于右侧?
添加:
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
Run Code Online (Sandbox Code Playgroud)
在<ListView.ItemContainerStyle>应该做的工作。
您在问题中提到了HorizontalContentAlignment,但正如我所见,您尚未在 xaml 代码中设置它。默认情况下HorizontalContentAlignment设置为Left,因此它不会占用所有可用空间。