WPF Visibility.Collapsed
와 차이점은 무엇입니까 Visibility.Hidden
?
답변
차이점은 Visibility.Hidden
컨트롤 을 숨기지 만 레이아웃에서 차지하는 공간을 확보한다는 것입니다. 따라서 컨트롤 대신 공백을 렌더링합니다.
Visibilty.Collapsed
컨트롤을 렌더링하지 않습니다 및 공백을 예약하지 않습니다. 컨트롤이 차지하는 공간은 ‘축소’되므로 이름입니다.
MSDN의 정확한 텍스트 :
접음 : 요소를 표시하지 않고 레이아웃에 공간을 예약하지 않습니다.
숨김 : 요소를 표시하지 않지만 레이아웃에서 요소를위한 공간을 확보하십시오.
표시 : 요소를 표시합니다.
참조 : http://msdn.microsoft.com/en-us/library/system.windows.visibility.aspx
답변
가시성 : 숨겨진 대 축소
코드 만 보여줍니다 다음 고려 three Labels
와 두 번째가 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"/>
숨겨진 출력 :
저것과 같이 쉬운.
답변
조금 오래된 스레드이지만 여전히 차이점을 찾는 사람들을 위해 :
숨김에서 가져온 레이아웃 (공간)을 제외하고는 축소 된 경우에는 다른 차이점이 있습니다.
이 ‘Collapsed’기본 컨트롤 내에 사용자 지정 컨트롤이있는 경우 다음에이 컨트롤을 Visible로 설정하면 모든 사용자 지정 컨트롤이 “로드”됩니다. 윈도우가 시작될 때 사전로드되지 않습니다.
‘숨겨 짐’은 “창”이 시작될 때 숨겨진 것으로 설정 한 모든 사용자 지정 컨트롤 + 기본 컨트롤을로드합니다.