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