【问题标题】:How can I hide a control so that it no longer takes up space in WPF?如何隐藏控件以使其不再占用 WPF 中的空间?
【发布时间】:2011-09-04 12:31:06
【问题描述】:

我有一个用于网格视图中的单元格的 DataTemplate。我想在进度条和文本/链接块之间切换。有没有办法隐藏一个元素,使其从流程中移除并且在隐藏时不占用空间(如 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>

【问题讨论】:

    标签: wpf layout visibility


    【解决方案1】:

    Visibility.Collapsed 可能是您需要的(而不是 Visibility.Hidden,它仍然使控件参与布局计算)

    另见Visibility enumeration reference

    【讨论】:

      【解决方案2】:

      是的。

      Visibility 是一个枚举,Visible、Hidden 和 Collapsed。 隐藏是不可见的,而折叠意味着它也不需要空间

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-01
        • 2010-10-06
        相关资源
        最近更新 更多