如何在 windows phone 8.0 中使用网格列在左侧和右侧设置项目

How to set items on left and right with grid column in windows phone 8.0

谁能说说怎么做:

在弹出窗口中,我有两个项目,一个是文本块,一个是图像,根据文本的大小,我需要将所有时间的文本放在左边,将图标放在右边,就像第二张图片一样。

 <Grid>
    <Grid.ColumnDefinitions>
       <ColumnDefinition Width="Auto"/>
       <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
         <TextBlock Grid.Column="0" Text="TEXT"/>
         <Image Grid.Column="1" />
 </Grid>

当第一列设置为自动时,第一个图像就像这样:

设置静态宽度时:

 <Grid>
        <Grid.ColumnDefinitions>
           <ColumnDefinition Width="400"/>
           <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
             <TextBlock Grid.Column="0" Text="TEXT"/>
             <Image Grid.Column="1" />
     </Grid>

设置后

我想设置动态值,而不是宽度的静态值。

您可以设置网格中元素的HorizontalAlignment

<Grid HorizontalAligment="Stretch">
    <Grid.ColumnDefinitions>
       <ColumnDefinition Width="Auto"/>
       <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
         <TextBlock Grid.Column="0" Text="TEXT"/>
         <Image Grid.Column="1" HorizontalAlignment="Right" />
</Grid>

这应该将图像放在列的右侧。您可能会发现您还必须告诉网格拉伸以填充它的容器。

或者,假设您的图标大小相同,您可以交换列定义:

<Grid HorizontalAligment="Stretch">
    <Grid.ColumnDefinitions>
       <ColumnDefinition Width="*"/>
       <ColumnDefinition Width="Auto"/>
    </Grid.ColumnDefinitions>
         <TextBlock Grid.Column="0" Text="TEXT"/>
         <Image Grid.Column="1" />
</Grid>

以便第二列从其内容(图标)中获取宽度,第一列伸展以填充可用 space。

对于这类问题,您通常必须尝试两三件事才能获得您正在寻找的确切行为。

试试这个

<Grid>
    <Grid.ColumnDefinitions>
       <ColumnDefinition Width="*"/>
       <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
         <TextBlock Grid.Column="0" Text="TEXT" HorizontalAlignment="Left"/>
         <Image Grid.Column="1" HorizontalAlignment="Right"/>
 </Grid>

如果这是页面上的唯一内容,您可能还需要为 TextBlock 和 Image 设置垂直对齐方式。届时内容可能会出现在页面的中央。