如何在StackPanel中垂直和水平显示TextBlock?

时间:2015-01-22 18:32:56

标签: c# xaml windows-phone-8

我有一个带有一些元素的ListView。对于每个项目,我插入一个图像,对象的名称和一个属性。

我设置了stackpanel的水平方向。

显示左侧的图像,右侧是对象的名称。

我想在名称下显示属性,始终在图像的右侧。如果我将StackPanel水平放置,我该怎么办?

 <StackPanel Orientation="Horizontal">
     <Image Source="Assets/rsz_1rsz_museumiclip.jpg"/>
     <TextBlock Text=""/>
     <TextBlock Text="{Binding Path=NomeMuseo}" FontSize="26"/>
     <TextBlock Text="{Binding Path=Paese}"/>//THIS IS
 </StackPanel>

1 个答案:

答案 0 :(得分:1)

由于DockPanel不是一个选项,我只会使用Grid。它将让您精确控制这种布局:

<Grid>
   <Grid.RowDefinitions>
      <RowDefinition Width="Auto"/>
      <RowDefinition Width="Auto"/>
   </Grid.RowDefinitions>
   <Grid.ColumnDefinitions>
      <ColumnDefinition Height="Auto"/>
      <ColumnDefinition Height="20"/>
   </Grid.ColumnDefinitions>
     <Image Source="Assets/rsz_1rsz_museumiclip.jpg"/>
     <TextBlock Text=""/>
     <TextBlock Text="{Binding Path=NomeMuseo}" FontSize="26" Grid.Row="0" Grid.Column="1"/>
     <TextBlock Text="{Binding Path=Paese}" Grid.Row="1" Grid.Column="1"/>
</Grid>

或者,您可以使用ChrisW建议的两个StackPanels。它设置起来有点容易,但你失去了一些控制力。

<StackPanel Orientation="Horizontal">
   <Image Source="Assets/rsz_1rsz_museumiclip.jpg"/>
   <StackPanel>
       <TextBlock Text="{Binding Path=NomeMuseo}" FontSize="26"/>
       <TextBlock Text="{Binding Path=Paese}"/>
   </StackPanel>
</StackPanel>