C# 仅垂直折叠文本框-如果文本框被隐藏,则获取其实际高度
考虑以下简化控制代码:C# 仅垂直折叠文本框-如果文本框被隐藏,则获取其实际高度,c#,.net,wpf,C#,.net,Wpf,考虑以下简化控制代码: <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <TextBlock Text="xxx" Grid.Column="1" VerticalAlignment="Center">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Text="xxx" Grid.Column="1" VerticalAlignment="Center">
</TextBlock>
<TextBlock Text="{Binding Value}" VerticalAlignment="Center">
</TextBlock>
<TextBox Text="{Binding Value}" VerticalAlignment="Center">
<TextBox.Style>
<Style TargetType="TextBox">
<Style.Triggers>
<DataTrigger Binding="{Binding Value}" Value="0">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
</Grid>
我有条件地(这里:Value==0)隐藏文本框
,以便值
显示在下面的文本块
中。它可以工作,但是如果我使用折叠的
,控件的高度会改变我想要避免的内容。如果使用Hidden
,则隐藏的文本框的宽度将推动网格列1
我想要的是仅在垂直方向折叠文本框
,以便其高度保持控件的高度不变。将控件上的高度设置为固定值感觉很糟糕。尝试以下数据触发器(将宽度设置为0)
<DataTrigger Binding="{Binding Value}" Value="0">
<Setter Property="Visibility" Value="Hidden" />
<Setter Property="Width" Value="0"/>
</DataTrigger>