如何隐藏控件以使其不再占用WPF中的空间?

dan*_*dan 4 wpf layout visibility

我有一个DataTemplate,我用于gridview中的单元格.我想在进度条和文本/链接块之间切换.有没有办法隐藏一个元素,以便它从流中删除,并在隐藏时不占用任何空间(如CSS中的"display:none")?有没有更好的方法来解决这个问题?

DataTemplate看起来像:

<DataTemplate x:Key="DataTemplate2">
    <StackPanel Height="40">
        <TextBlock Visibility="{Binding ButtonVisibility}">
            <Hyperlink Click="btn_Authorise">
                <InlineUIContainer>
                    <TextBlock Text="{Binding Button}" />
                </InlineUIContainer>
            </Hyperlink>
        </TextBlock>
        <ProgressBar Value="{Binding Progress}"
                     Visibility="{Binding ProgressVisibility}"
                     Height="15"
                     Width="150"
                     Background="{DynamicResource NormalBrush}"
                     BorderThickness="0"
                     BorderBrush="#FF8D8D8D"
                     Style="{DynamicResource ProgressBarStyle1}" />
    </StackPanel>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)

H.B*_*.B. 13

Visibility.Collapsed可能就是你需要的东西(而不是Visibility.Hidden让控件参与布局计算)

另请参阅Visibility枚举参考.