我在XAML
中有以下my Windows Phone app
:
<StackPanel Orientation="Horizontal">
<Grid x:Name="LayoutRoot">
<Image Source="{Binding ImageUrl}" Height="80" HorizontalAlignment="Left" Margin="10,10,0,0" Stretch="Fill" VerticalAlignment="Top" Width="93" />
<TextBlock name="NameBlock" Text="{Binding Name}" FontSize="30" Margin="150,20,0,0" TextWrapping="Wrap" HorizontalAlignment="Left" VerticalAlignment="Top" Width="300" />
<TextBlock name="DescriptionBlock" Text="{Binding Description}" FontSize="25" Margin="150,150,0,0" TextWrapping="Wrap" HorizontalAlignment="Left" VerticalAlignment="Top" Width="300" />
</Grid>
</StackPanel>
目前,我将第二个TextBlock(DescriptionBlock
)的边距设置为静态值。现在因为我将第一个TextBlock
(NameBlock
)的工作包装设置为"Wrap"
,TextBlock
的高度是可变的。
是否有人知道如何使DescriptionBlock
的上边距等于NameBlock
的自动高度?这将确保第二个DescriptionBlock直接显示在NameBlock
下方{1}},无论NameBlock
的文字长度如何。
非常感谢! 布雷特
答案 0 :(得分:1)
这就是面板的用途。将两个文本块包装在堆栈面板中,它将文本块一个堆叠在另一个上面。
<Grid x:Name="LayoutRoot">
<Image Source="{Binding ImageUrl}" Height="80" HorizontalAlignment="Left" Margin="10,10,0,0" Stretch="Fill" VerticalAlignment="Top" Width="93" />
<StackPanel Margin="150,20,0,0" Width="300">
<TextBlock name="NameBlock" Text="{Binding Name}" FontSize="30" TextWrapping="Wrap" HorizontalAlignment="Left" />
<TextBlock name="DescriptionBlock" Text="{Binding Description}" FontSize="25" TextWrapping="Wrap" HorizontalAlignment="Left" />
</StackPanel>
</Grid>
包含单个孩子的面板通常没用,所以我删除了网格周围的堆栈面板。
如果您想继续使用Grid
,可以自动定义行数。