主要運用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控件進行統一的判斷。