设置父容器的可见性

时间:2016-05-10 19:24:44

标签: c# wpf

我想通过检查其包含的每个控件的可见性来设置我父容器的可见性。如果它包含的控件都不可见,则隐藏父容器。我知道如何通过对容器包含的每个控件进行硬编码来完成此操作。但是,我想执行此检查,而无需在后面的代码中键入容器包含的每个控件的名称。有没有办法在后面的代码中执行此操作?我不是在寻找多数据触发器。

1 个答案:

答案 0 :(得分:2)

只需通过子控件进行迭代并设置可见性

Winform版本

var isParentVisible = false;

foreach(Control child in ParentContainer.Controls)
{
   isParentVisible = child.IsVisible;

   if(isParentVisible)
      break;
}

WPF版

var isParentVisible = false;

foreach (var child in LogicalTreeHelper.GetChildren(ParentContainer)) 
{
  if (!(child is UIElement)) {
    continue;
  }

  isParentVisible = child.IsVisible;

  if(isParentVisible)
    break;
}