2017-04-23 68 views
0

我创建UWP应用程序,其中屏幕的一个具有布局是这样的:拉伸TextBlock中所有可用的宽度

<ListView> 
    <ListViewItem> 
     <Grid> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="Auto" /> 
       <ColumnDefinition Width="*" /> 
       <ColumnDefinition Width="Auto" /> 
      </Grid.ColumnDefinitions> 
      <Ellipse 
       Width="32" 
       Height="32" 
       Margin="6" 
       HorizontalAlignment="Center" 
       VerticalAlignment="Center" 
       Fill="LightGray" /> 
      <TextBlock 
       Grid.Column="1" 
       Margin="12,6,0,0" 
       FontSize="20" 
       Text="Here is Long Name" /> 
      <StackPanel 
       Grid.Column="2" 
       Orientation="Horizontal" 
       HorizontalAlignment="Right"> 
       <Button Width="25" Height="45" BorderThickness="0">-</Button> 
       <TextBlock 
        Width="25" 
        Height="45" 
        Padding="0,5,0,0" 
        FontSize="24" 
        Text="0" 
        TextAlignment="Center" /> 
       <Button Width="30" Height="45" BorderThickness="0">+</Button> 
      </StackPanel> 
     </Grid> 
    </ListViewItem> 
    <ListViewItem> 
     <Grid> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="Auto" /> 
       <ColumnDefinition Width="*" /> 
       <ColumnDefinition Width="Auto" /> 
      </Grid.ColumnDefinitions> 
      <Ellipse 
       Width="32" 
       Height="32" 
       Margin="6" 
       HorizontalAlignment="Center" 
       VerticalAlignment="Center" 
       Fill="LightGray" /> 
      <TextBlock 
       Grid.Column="1" 
       Margin="12,6,0,0" 
       FontSize="20" 
       Text="Short name" /> 
      <StackPanel 
       Grid.Column="2" 
       Orientation="Horizontal" 
       HorizontalAlignment="Right"> 
       <Button Width="25" Height="45" BorderThickness="0">-</Button> 
       <TextBlock 
        Width="25" 
        Height="45" 
        Padding="0,5,0,0" 
        FontSize="24" 
        Text="0" 
        TextAlignment="Center" /> 
       <Button Width="30" Height="45" BorderThickness="0">+</Button> 
      </StackPanel> 
     </Grid> 
    </ListViewItem> 
</ListView> 

它看起来像这样(我不能插入图片):https://i.stack.imgur.com/Afvn6.png

我希望最后一列中的StackPanel位于右侧,无论名称多长。如果TextBlock拉伸到所有可用的宽度,我认为这将是这种情况,但它不会。我该如何解决?

回答

3

加入这个给你的ListView

<ListView.ItemContainerStyle> 
    <Style TargetType="ListViewItem"> 
     <Setter Property="HorizontalContentAlignment" Value="Stretch" /> 
    </Style> 
</ListView.ItemContainerStyle>