我怎么能在Xaml中做这个(像汽车保证金?)

时间:2013-07-09 23:08:28

标签: windows-phone-7 xaml expression-blend

假设我有两个文本块彼此相邻

TextBlock 1 - Hi how are you?
TextBlock 2 - I am fine thank you

结果

 Hi how are you? I am fine thank you

现在说我想要隐藏文本块1(动态地)。我仍然会看到Textblock 2,但在此之前,文本块1将是一个巨大的空间。

结果

                 I am fine thank you

我想自动移动textblock2。

结果

 I am fine thank you

如果我动态地将TextBlock1更改为较短的文本字符串并将它们并排放置,那么这也是类似的情况,会有很多黑色空间。

2 个答案:

答案 0 :(得分:1)

要将textblock2移动到textblock1的位置,您正在寻找Visibility.Collapsed而不是Visibility.Hidden

对于自动宽度的东西,您可能希望将列宽定义为*而不是固定宽度。

答案 1 :(得分:0)

您应该将列0的宽度设置为自动,如下所示:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <TextBlock Grid.Column="0" x:Name="textblock1" Text="Textblock1"></TextBlock>
    <TextBlock Grid.Column="1" x:Name="textblock2" Text="Textblock2">  </TextBlock>
</Grid>