0

我创建的 WPF 应用程序包含一个 3 行的 Grid。我在第三行有一组按钮。单击按钮时,表格将显示在网格的第二行。但是我所做的非常混乱,因为我在同一个窗口中创建了所有表单内容并将可见性设置为隐藏。

示例代码:

<Grid Name="panel1" Grid.Row="1" Visibility="Hidden">
 //contains a lot of textblocks,buttons and images
</Grid>
<Grid Name="panel2" Grid.Row="1" Visibility="Hidden">
 //contains a lot of textblocks,buttons and images
</Grid>
 <Grid Name="panel3" Grid.Row="1" Visibility="Hidden">
 //contains a lot of textblocks,buttons and images
</Grid>

我的 xml 代码如下所示:

private void Image_MouseLeftButtonDown_1(object sender, System.Windows.Input.MouseButtonEventArgs e)
    {
        panel1.Visibility = System.Windows.Visibility.Hidden;
        panel2.Visibility = System.Windows.Visibility.Visible;
        panel3.Visibility = System.Windows.Visibility.Hidden;
    }

这种方法看起来非常混乱,因为我已经在 Main Xaml 文件中包含了所有代码。需要一些替代方法来做到这一点。请帮忙。

4

2 回答 2

1

创建这样的方法

private void VisibilityManager(Grid grd)
{
    new List<Grid>(){ panel1, panel2, panel3}
       .ForEach(x => x.Visibility = Visibility.Hidden);
    grd.Visibility = Visibility.Visible;
}

并这样称呼它

VisibilityManager(panel1);

用于使 panel1 可见并隐藏所有其他。

将来,如果您必须增加网格,只需在此方法中进行更改。

于 2012-08-09T06:41:09.947 回答
0

您可以设置选项卡控件的样式并切换选项卡,可以使用内容控件并创建与要显示的内容的绑定。您还可以使用数据绑定(取决于您要显示的内容)并使用模板选择器......有很多方法可以解决这个问题。多说一点你的内容是什么样的

于 2012-08-09T06:42:51.400 回答