如何在xaml中使用手机的全宽?

如何在xaml中使用手机的全宽?,xaml,layout,windows-phone,Xaml,Layout,Windows Phone,我在网格中有3个控件。行,但如何使它们使用页面的整个宽度 这是我的xaml: <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="140" /> <ColumnDefinition Width="*" /> &l

我在
网格中有3个控件。行
,但如何使它们使用页面的整个宽度

这是我的xaml:

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

      <Image Grid.Column="0"
            Grid.Row="1"
            Source="/Assets/image1.png"
            Height="25"
            Width="25" />

      <TextBox Grid.Column="1"
               Margin="10,0,0,0"
               Text="{Binding InputText, Mode=TwoWay}"
               BorderBrush="Black"
               BorderThickness="2"
               VerticalAlignment="Center">
      </TextBox>

      <Button Grid.Column="2"
              BorderThickness="2"
              HorizontalAlignment="Right"
              Command="{Binding AddTextCommand}"
              Margin="10,0,0,0">
       <TextBlock x:Uid="ButtonText" />
       </Button>
 </Grid>

现在的结果是:

正如您所看到的,它是左对齐的,如何使它使用全宽


您的代码只显示3个控件(
图像
文本框
按钮
),而您的屏幕截图显示4个控件。我想顶部的全宽控制缺失,但回答这个问题没有问题

如果我们分解了您的XAML,您有:

  • 第一列宽度自动,用图像填充
  • 第二列宽度140,用文本框填充
  • 第三列宽度*(或空间的其余部分),用按钮填充
在已放置的按钮上(默认为左侧),您的意思是:仅使用所需的空间,并将控件置于右侧。如果要使用可用的全宽,必须使用
HorizontalAlignment=“Stretch”



请注意,我还从
按钮中删除了
TextBlock
,并将
x:Uid
标记移到按钮上。只需在资源中使用
ButtonText.Content
即可本地化按钮,无需在其中放置
TextBlock

嘿,上面的文本框位于另一个网格行中。我想要的是按钮在上面文本框的结尾处结束。我添加了水平对齐,但没有任何变化。这个网格放在StackPanel(或类似控件)中吗?然后您还必须将
HorizontalAlignment=“Stretch”
放在网格/堆栈面板上,因为堆栈面板内的控件仅采用必要的宽度,而不是全宽度。上面的代码是经过测试和验证的,所以如果它不起作用,就会出现问题。事实上,我有一个不必要的stackpanel,删除了它,它就会像你说的那样工作。非常感谢。
 <Grid>
      <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="140" />
            <ColumnDefinition Width="*" />
      </Grid.ColumnDefinitions>

      <Image Grid.Column="0"
            Source="/Assets/image1.png"
            Height="25"
            Width="25" />

      <TextBox Grid.Column="1"
               Margin="10,0,0,0"
               Text="{Binding InputText, Mode=TwoWay}"
               BorderBrush="Black"
               BorderThickness="2"
               VerticalAlignment="Center">
      </TextBox>

      <Button Grid.Column="2" x:Uid="ButtonText"
              BorderThickness="2"
              HorizontalAlignment="Stretch"
              Command="{Binding AddTextCommand}"
              Margin="10,0,0,0" />
 </Grid>