0

我有一些TextBlock我希望组合在一起的 's,这样如果其中一个碰巧包含很多文本,它下面的控件就会相应地向下移动。

目前我已经将TextBlock's 包裹在 a 中<StackPanel>,但是,控件现在是垂直分开的。我怎样才能缩短他们之间的距离?

这是我的代码:

<StackPanel>
    <TextBlock TextAlignment="Left" x:Name="lblCategoryTitle" TextWrapping="Wrap" Text="Category"
                VerticalAlignment="Top" Height="29" Width="456" Margin="0,59,0,0" FontWeight="Bold">
        <TextBlock.Foreground>
            <SolidColorBrush Color="{StaticResource PhoneAccentColor}" />
        </TextBlock.Foreground>
    </TextBlock>
    <TextBlock Height="auto" TextAlignment="Left" x:Name="lblCategory" TextWrapping="Wrap"
                Text="Category" Margin="0,88,10,428" />
    <TextBlock TextAlignment="Left" x:Name="lblContactDetails" TextWrapping="Wrap"
                Text="Contact Details" Margin="0,179,289,396" FontWeight="Bold">
        <TextBlock.Foreground>
            <SolidColorBrush Color="{StaticResource PhoneAccentColor}" />
        </TextBlock.Foreground>
    </TextBlock>
    <TextBlock Height="auto" TextAlignment="Left" x:Name="lblName" TextWrapping="Wrap" Text="Name"
                Margin="0,211,10,364" />
    <TextBlock Height="auto" TextAlignment="Left" x:Name="lblAddress" TextWrapping="Wrap"
                Text="Address" Margin="0,243,10,332" />
    <TextBlock Height="auto" TextAlignment="Left" x:Name="lblEmail" TextWrapping="Wrap" Text="Email"
                Margin="0,275,10,300" />
    <TextBlock Height="auto" TextAlignment="Left" x:Name="lblTelephone" TextWrapping="Wrap"
                Text="Telephone" Margin="0,307,10,268" />
</StackPanel>

我想我还应该问一下是否StackPanel适合我的要求。你们有什么想法?

4

2 回答 2

1

你有一些相当大的边距——如果你减少边距的大小,文本块会更接近。您不需要将所有内容都偏移到顶部(实际上,您不应该),因为堆栈面板将处理与前一项的偏移量<StackPanel>

于 2013-09-30T11:58:56.060 回答
1

如果您不希望您的控件被广泛分开,只需减少边距。更改面板类型后,您似乎忘记调整边距。

例如,对于您的最后一个 TextBlock:

<TextBlock Height="auto" TextAlignment="Left" x:Name="lblTelephone" TextWrapping="Wrap"
            Text="Telephone" Margin="0,307,10,268" />

边距的四个数字分别表示左边距、上、右、下。所以只需减少第二个数字就可以了。

于 2013-09-30T11:58:59.370 回答