C#找出屏幕上是否显示控件

时间:2014-08-06 12:14:36

标签: c# wpf controls visibility

我在面板中有一个文本框。

如果TextBow.Visible = true且Panel.Visible = False,

无论如何,我可以告诉用户实际上看不到文本框,虽然它是可见的。

更大的清晰度。

我在一个不可见的面板中有一个可见的文本框。因为面板不可见,但内部的控件是,检查文本框的visibie属性不能给我所需的答案。

我真正想要的是如何检查用户是否能够真正看到控件。

1 个答案:

答案 0 :(得分:1)

如果控件的任何父级是不可见的,也许可以使用递归方法检查?

如果为true,则控件不可见。如果所有父母都可见,则控制也是可见的,除非控件本身不可见。

像这样:

    public bool isVisible(Control c)
    {
        if (c.Visible == false)
            return false;
        else
            if (c.Parent != null)
                return isVisible(c);
            else
                return c.Visible;
    }