codememo

가시성 간의 차이입니다.축소 및 가시성.히든

tipmemo 2023. 5. 28. 20:49
반응형

가시성 간의 차이입니다.축소 및 가시성.히든

사이의 차이점은 무엇입니까?Visibility.Collapsed그리고.Visibility.HiddenWPF에서?

다른 점은Visibility.Hidden컨트롤을 숨기지만 레이아웃에서 차지하는 공간을 예약합니다.컨트롤 대신 공백을 렌더링합니다. Visibilty.Collapsed컨트롤을 렌더링하지 않으며 공백을 예약하지 않습니다.컨트롤이 사용하는 공간은 '접혀진' 공간이므로 이름을 사용합니다.

MSDN의 정확한 텍스트:

접힘:요소를 표시하지 않고 레이아웃에 공간을 예약하지 마십시오.

숨김: 요소를 표시하지 않고 레이아웃에서 요소에 대한 공간을 예약합니다.

표시됨:요소를 표시합니다.

참조: http://msdn.microsoft.com/en-us/library/system.windows.visibility.aspx

가시성: 숨겨진 버전과 축소된 버전

두 번째 코드만 표시되고 두 번째 코드가 있는 다음 코드를 고려합니다.Label visibility~하듯이Collapsed:

 <StackPanel Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Center">
    <StackPanel.Resources>
        <Style TargetType="Label">
            <Setter Property="Height" Value="30" />
            <Setter Property="Margin" Value="0"/>
            <Setter Property="BorderBrush" Value="Black"/>
            <Setter Property="BorderThickness" Value="1" />
        </Style>
    </StackPanel.Resources>
    <Label Width="50" Content="First"/>
    <Label Width="50" Content="Second" Visibility="Collapsed"/>
    <Label Width="50" Content="Third"/>
</StackPanel>

축소된 출력:

접힘

이제 두 번째를 변경합니다.Label visibility로.Hiddden.

<Label Width="50" Content="Second" Visibility="Hidden"/>

숨겨진 출력:

히든

그것처럼 간단해.

조금 오래된 스레드이지만 여전히 차이점을 찾고 있는 사람들을 위해:

숨겨진 레이아웃(공백)과 축소된 레이아웃(공백)을 제외하고는 다른 차이점이 있습니다.

이 '붕괴된' 메인 컨트롤 안에 사용자 지정 컨트롤이 있는 경우 다음 번에 이 컨트롤을 표시로 설정하면 모든 사용자 지정 컨트롤이 "로드"됩니다.창이 시작될 때 사전 로드되지 않습니다.

'숨김'의 경우, "창"이 시작될 때 숨겨진 것으로 설정한 모든 사용자 정의 컨트롤 + 메인 컨트롤이 로드됩니다.

한 문장으로:숨겨진 컨트롤은 여전히 공간을 차지하지만 축소된 컨트롤은 차지하지 않습니다.

언급URL : https://stackoverflow.com/questions/886742/difference-between-visibility-collapsed-and-visibility-hidden

반응형