奇怪的Windows Phone ListBoxItem布局

时间:2015-08-20 02:11:18

标签: windows-phone-8.1

我的XAML中有ListBox

<ListBox x:Name="ListBox" ItemTemplate="{StaticResource ListBoxDataTemplate}" 
BorderThickness="0" />

ListBoxDataTemplate

<DataTemplate x:Key="ListBoxDataTemplate">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*" />
                <ColumnDefinition Width="34" />
            </Grid.ColumnDefinitions>
            <TextBlock TextWrapping="Wrap" FontSize="18" 
Grid.Column="0">A QUICK BROWN</TextBlock>
            <Image Grid.Column="1" Margin="4,0,4,0" 
Width="30" Height="30" Source="ms-appx:///Assets/Dark/icon.arrowright.png" />
        </Grid>
    </DataTemplate>

但是当我在模拟器上运行它时,而不是行中的Image对齐, Image位置就在Text A QUICK BROWN之后。

此处来自模拟器的截图

ListBoxItem

XAML代码在这里:http://pastebin.com/GVqC2Si9

1 个答案:

答案 0 :(得分:0)

因为图片的网格列只有34 将其更改为

<Grid.ColumnDefinitions>
                <ColumnDefinition Width="*" />
                <ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>

我还会将HorizontalAlignment="Right"添加到图片xaml

修改

尝试了您的代码并注意到您必须添加Horizo​​ntalContentAlignment

<ListBox x:Name="ListBox" ItemTemplate="{StaticResource ListBoxDataTemplate}" >
    <ListBox.ItemContainerStyle>
        <Style TargetType="ListBoxItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter>
        </Style>
    </ListBox.ItemContainerStyle>
</ListBox>