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

How to display in a StackPanel the TextBlock vertically and horizontally?

我有一个包含一些元素的 ListView。我为每个项目插入一个图像、对象的名称和其中一个属性。

我设置了堆栈面板的水平方向。

左边显示图片,右边是对象名称。

然后我想在名称下方显示 属性,始终在图像右侧。我怎么把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>

因为 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>