假设我有两个文本块彼此相邻
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更改为较短的文本字符串并将它们并排放置,那么这也是类似的情况,会有很多黑色空间。
答案 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>