我有一个带有一些元素的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>
答案 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>