C# Visibilityとは

Visibilityを制御する必要があるUIを作成した際に調べたのでメモる。

Visibility列挙型

Collapsed

要素を表示しない、レイアウトの領域も確保しない

Hidden

要素を表示しない、レイアウトの領域を確保する

Visible

要素を表示する、レイアウトの領域を確保する

まとめ

実際に表示してみると以下のような感じになる

<Window x:Class=\"WpfNavigationService.View.Window\"
        xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"
        xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\"
        xmlns:d=\"http://schemas.microsoft.com/expression/blend/2008\"
        xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\"
        xmlns:local=\"clr-namespace:WpfNavigationService.View\"
        mc:Ignorable=\"d\"
        Title=\"Window\" Height=\"200\" Width=\"200\">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width=\"1*\"/>
            <ColumnDefinition Width=\"1*\"/>
        </Grid.ColumnDefinitions>
        <StackPanel Background=\"White\" Grid.Column=\"0\" Grid.ColumnSpan=\"1\">
            <TextBlock Text=\"Visibility\" Visibility=\"Visible\" Background=\"Red\" Foreground=\"White\"/>
            <TextBlock Text=\"Collapsed\" Visibility=\"Visible\" Background=\"Green\" Foreground=\"White\"/>
            <TextBlock Text=\"Hidden\" Visibility=\"Visible\" Background=\"Blue\" Foreground=\"White\"/>
            <TextBlock Text=\"Visibility\" Visibility=\"Visible\" Background=\"Red\" Foreground=\"White\"/>
        </StackPanel>
        <StackPanel Background=\"White\" Grid.Column=\"1\" Grid.ColumnSpan=\"1\">
            <TextBlock Text=\"Visibility\" Visibility=\"Visible\" Background=\"Red\" Foreground=\"White\"/>
            <TextBlock Text=\"Collapsed\" Visibility=\"Collapsed\" Background=\"Green\" Foreground=\"White\"/>
            <TextBlock Text=\"Hidden\" Visibility=\"Hidden\" Background=\"Blue\" Foreground=\"White\"/>
            <TextBlock Text=\"Visibility\" Visibility=\"Visible\" Background=\"Red\" Foreground=\"White\"/>
        </StackPanel>
    </Grid>
</Window> 

f:id:kaleidot725:20170423202810p:plain