311

WPFVisibility.Collapsedとの違いは何ですか?Visibility.Hidden

4

3 に答える 3

463

違いはVisibility.Hidden、コントロールを非表示にしますが、レイアウトで占有するスペースを予約することです。したがって、コントロールの代わりに空白をレンダリングします。 コントロールをVisibilty.Collapsedレンダリングせず、空白を予約しません。コントロールが取るスペースは「折りたたみ」であるため、この名前が付けられています。

MSDNからの正確なテキスト:

折りたたみ:要素を表示せず、レイアウトでその要素用のスペースを予約しません。

非表示:要素を表示しませんが、レイアウト内の要素用のスペースを予約します。

表示:要素を表示します。

参照: http: //msdn.microsoft.com/en-us/library/system.windows.visibility.aspx

于 2009-05-20T08:21:15.453 に答える
65

可視性:非表示と折りたたみ

次のコードを検討してください。このコードは、次のように表示されthree Labels、2番目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次に、2番目をに変更しHidddenます。

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

非表示の出力:

隠れた

それと同じくらい簡単です。

于 2016-02-11T19:44:50.133 に答える
7

少し古いスレッドですが、まだ違いを探している人のために:

Hiddenで取得され、Collapsedで取得されないレイアウト(スペース)以外に、別の違いがあります。

この「折りたたまれた」メインコントロール内にカスタムコントロールがある場合、次にそれをVisibleに設定すると、すべてのカスタムコントロールが「ロード」されます。ウィンドウの開始時にプリロードされません。

「非表示」については、「ウィンドウ」の起動時に非表示に設定したすべてのカスタムコントロールとメインコントロールをロードします。

于 2016-05-11T08:22:41.577 に答える