WPF Visibility.Collapsed
との違いは何Visibility.Hidden
ですか?
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"/>
非表示の出力:
それと同じくらい簡単です。
少し古いスレッドですが、まだ違いを探している人のために:
Hiddenで取得され、Collapsedで取得されないレイアウト(スペース)を除いて、別の違いがあります。
この「折りたたまれた」メインコントロール内にカスタムコントロールがある場合、次にそれをVisibleに設定すると、すべてのカスタムコントロールが「ロード」されます。ウィンドウの開始時にプリロードされません。
「非表示」に関しては、「ウィンドウ」が開始されたときに非表示に設定したすべてのカスタムコントロール+メインコントロールがロードされます。