Выровнять сетку вправо
У меня есть сетка Windows Phone/XAML, состоящая из трех столбцов. В частности, я хочу, чтобы третий столбец был выровнен с правой стороны экрана.
<Grid Background="Transparent" Margin="0,3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Image Grid.Column="0" x:Name="Marker" Width="60" Height="60" VerticalAlignment="Center" Stretch="Uniform" HorizontalAlignment="Center"/>
<TextBlock Grid.Column="1" x:Name="Name" TextAlignment="Left" VerticalAlignment="Center" Margin="20,0" />
<Image Grid.Column="2" x:Name="Selected" Width="48" Height="48" VerticalAlignment="Center" Stretch="Uniform" HorizontalAlignment="Center"/>
</Grid>
В результате вместо этого:
![enter image description here]()
Когда это будет выглядеть так:
![enter image description here]()
Ответы
Ответ 1
Как вы отметили его ItemTemplate
в ListBox, вы можете установить HorizontalContentAlignment
в Stretch
.
<ListBox>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
Ответ 2
Попробуйте следующее:
<Grid Background="Transparent" Margin="0,3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<StackPanel Orientation="Horizontal">
<Image x:Name="Selected" Width="48" Height="48" VerticalAlignment="Center" Stretch="Uniform" HorizontalAlignment="Center"/>
<TextBlock x:Name="Name" TextAlignment="Left" VerticalAlignment="Center" Margin="20,0" />
</StackPanel>
<Image Grid.Column="1" x:Name="Selected" Width="48" Height="48" VerticalAlignment="Center" Stretch="Uniform" HorizontalAlignment="Right"/>
</Grid>
Ответ 3
Попробуйте HorizontalAlignment="Stretch"
в сетке.
Ответ 4
У меня была такая же проблема, и она была исправлена после удаления stackpanel