Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 仅垂直折叠文本框-如果文本框被隐藏,则获取其实际高度_C#_.net_Wpf - Fatal编程技术网

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>