WPF--常見屬性Label的隱藏和顯示

主要運用Visibility和佈局

前臺代碼

  <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>
        <Label Name="labShow" Content="管理之道" Grid.Column="0" Grid.Row="0"></Label>
        <Label Name="labHade" Content="生存之理" Grid.Column="1" Grid.Row="0"></Label>
        <Button Name="btnShow" Content="顯示" Grid.Column="0" Grid.Row="1" Height="30" Width="60" Click="btnShow_Click"></Button>
        <Button Name="btnHade" Content="隱藏" Grid.Column="1" Grid.Row="1" Height="30" Width="60" Click="btnHade_Click"></Button>
        <Button Name="btnAll" Content="實例" Grid.Row="2" Grid.ColumnSpan="2" Width="100" Height="30" Click="btnAll_Click"></Button>
    </Grid>

後臺代碼

        private void btnShow_Click(object sender, RoutedEventArgs e)
        {
            labShow.Visibility=Visibility.Visible;
            labHade.Visibility = Visibility.Visible;
        }

        private void btnHade_Click(object sender, RoutedEventArgs e)
        {
            labShow.Visibility=Visibility.Collapsed;
            labHade.Visibility = Visibility.Collapsed;
        }

        private void btnAll_Click(object sender, RoutedEventArgs e)
        {
            if (labShow.Visibility == Visibility.Visible)
            {
                labShow.Visibility = Visibility.Collapsed;
            }
            else if (labShow.Visibility == Visibility.Collapsed)
            {
                labShow.Visibility = Visibility.Visible;
            }
            else
            {
                Button btn = (Button)sender;
                btn.Content = "居然卡在未知空間啦";
            }

            if (labHade.Visibility == Visibility.Visible)
            {
                labHade.Visibility = Visibility.Collapsed;
            }
            else if (labHade.Visibility == Visibility.Collapsed)
            {
                labHade.Visibility = Visibility.Visible;
            }
            else
            {
                Button btn = (Button)sender;
                btn.Content = "居然卡在未知空間啦";
            }            
        }

我們從上文可看出,有重複的代碼。故我們進行封裝。

將每一個Label的驗證進行批量處理

        private void btnAll_Click(object sender, RoutedEventArgs e)
        {
             
            CheckLabel(labShow,labHade);
        }

        public void CheckLabel(params Label[] lab)
        {
            foreach (Label labs in lab)
            {
                if (labs.Visibility == Visibility.Visible)
                {
                    labs.Visibility = Visibility.Collapsed;
                }
                else if (labs.Visibility == Visibility.Collapsed)
                {
                    labs.Visibility = Visibility.Visible;
                }
                else
                {
                    throw new Exception("居然卡在未知空間啦");
                }
            }
        }

所有Label控件進行統一的判斷。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章