Xaml 固定windows phone上的网格宽度

Xaml 固定windows phone上的网格宽度,xaml,windows-phone,Xaml,Windows Phone,我想知道你是否指导我,如何在windows phone上固定网格宽度或griditem宽度。实际上我是xaml和windows phone的初学者。这是我的xaml代码: <Grid x:Name="ContentPanel" Grid.Row="1" Margin="0,0,0,0"> <ListBox x:Name="ListBoxCountry" SelectionChanged="ListBoxCountry_SelectionChang

我想知道你是否指导我,如何在windows phone上固定网格宽度或griditem宽度。实际上我是xaml和windows phone的初学者。这是我的xaml代码:

       <Grid x:Name="ContentPanel" Grid.Row="1" Margin="0,0,0,0">

        <ListBox x:Name="ListBoxCountry" SelectionChanged="ListBoxCountry_SelectionChanged">
                <ListBox.ItemsPanel>
                    <ItemsPanelTemplate>

                    </ItemsPanelTemplate>
                </ListBox.ItemsPanel>
                <ListBox.ItemTemplate>
                <DataTemplate>

                    <Grid Background="#FFD0D2D3" Height="180">

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

                        <Image Grid.Column="0" Source="Assets/images/icon_bubble_white.png" Stretch="None" Margin="-107,0,0,0" />
                        <Image  Grid.Column="0" Source="{Binding Icon}"  Height="50" Width="50" Stretch="Fill"/>
                        <TextBlock Grid.Column="1" TextAlignment="Center"  Text="{Binding Title}" HorizontalAlignment="Center" VerticalAlignment="Center" Foreground="White" />
                    </Grid>

                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>

    </Grid>

和listbox的丑陋视图,您可以看到网格项没有合适的宽度大小:


一般来说,我希望只要在
列表框中点击
HorizontalContentAlignment=“Stretch”
就可以很好地完成它,但不管出于什么原因,你说的都没有切掉它,所以我们就去告诉
ItemContainerStyle
谁是老板,不管它喜欢还是不喜欢

把我们带到更像

<Grid x:Name="ContentPanel" Grid.Row="1">

   <ListBox x:Name="ListBoxCountry" 
            SelectionChanged="ListBoxCountry_SelectionChanged"
            HorizontalContentAlignment="Stretch">
       <ListBox.ItemContainerStyle>

         <!-- Tell it to do as you wish. 
              Might also use BasedOn if you want to inherit the default stuff with it. -->

         <Style TargetType="ListBoxItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
         </Style>

       </ListBox.ItemContainerStyle>
       <ListBox.ItemTemplate>
           <DataTemplate>

               <Grid Background="#FFD0D2D3" Height="180">
                   <Grid.ColumnDefinitions>
                       <ColumnDefinition Width="Auto"/>
                       <ColumnDefinition Width="*"/>
                   </Grid.ColumnDefinitions>

                   <Image Source="Assets/images/icon_bubble_white.png" />
                   <Image Source="{Binding Icon}" Height="50" Width="50" Stretch="Fill"/>
                   <TextBlock Grid.Column="1" Text="{Binding Title}" 
                              HorizontalAlignment="Center" VerticalAlignment="Center" 
                              Foreground="White" />

               </Grid>

           </DataTemplate>
       </ListBox.ItemTemplate>
   </ListBox>

</Grid>


希望这有帮助,干杯。

您是否尝试删除ColumnDefinition上的Width=“Auto”?“自动”表示它只占用所需的空间,而不是跨越父控件。您希望它看起来像什么?将
HorizontalContentAlignment=“Stretch”
添加到您的
ListBox
应该可以修复该部分,但该图像上的-107左边距是故意的吗?@ErikElkins感谢您的回复,是的,我使用了,但没有更改。@ChrisW。现在我使用了HorizontalContentAlignment=“Stretch”,并删除了该页边距。但是没有变化。我想看到每一排都伸展开来。如您所见,视图存在行宽度问题,真的吗?直接在列表框本身(而不是itemtemplate)上,它没有这样做吗?啊,没想到。我想还得再看一眼。很酷的交易,很高兴你拿到了:)