WP8 StackPanel控件

时间:2013-09-30 11:54:33

标签: xaml windows-phone-8 windows-phone

我有一些TextBlock,我希望将它们组合在一起,这样如果其中一个恰好包含大量文本,则它下方的控件会相应地向下移动。

目前我已将TextBlock包裹在<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是否适合我的要求。你们有什么想法?

2 个答案:

答案 0 :(得分:1)

你有一些非常大的利润 - 如果你减少边距的大小,文本块会更接近。您不需要将所有内容偏移到顶部(实际上,不应该),因为stackpanel将处理<StackPanel>

中上一项的偏移量

答案 1 :(得分:1)

如果您不希望控件被广泛分隔,只需缩小边距即可。看起来您在更改面板类型后忘记调整边距。

例如,对于您的上一个TextBlock:

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

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