Как скрыть элемент управления, чтобы он больше не занимал место в WPF? - PullRequest
3 голосов
/ 30 мая 2011

У меня есть DataTemplate, который я использую для ячейки в виде сетки.Я хотел бы переключаться между индикатором выполнения и блоком текста / ссылок.Есть ли способ скрыть элемент так, чтобы он был удален из потока и не занимал место, пока он скрыт (например, «display: none» в CSS)?Есть ли лучший способ приблизиться к этому?

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>

Ответы [ 2 ]

12 голосов
/ 30 мая 2011

Visibility.Collapsed - это, вероятно, то, что вам нужно (в отличие от Visibility.Hidden, который все еще заставляет элемент управления участвовать в вычислениях макета)

Также см. Справочник по перечислению Visibility .

0 голосов
/ 30 мая 2011

Да.

Видимость - это перечисление, видимое, скрытое и свернутое. Hidden просто невидим, в то время как Collapsed означает, что он также не занимает места

...