gpt4 book ai didi

WPF:确定面板是否对用户可见

转载 作者:行者123 更新时间:2023-12-04 09:56:24 24 4
gpt4 key购买 nike

我在选项卡(WPF 应用程序)中有一个 WPF 用户控件(myGraphicControl)。

当表单大小发生变化时,我会在 myGraphicControl 中重新绘制图形。

由于重绘操作是一个我只需要在可见选项卡中进行控制。

WPF(用户)控件如何检测它实际上是否“可见”?

PS。

可见我的意思是用户可以看到它。
例如,如果 Visible TextBox 位于当前不可见的选项卡中,则该文本框对用户不可见。

最佳答案

我不相信这里有快速修复的解决方案,但您可以使用 UIElement.InputHitTest(Point) 来做一些事情。 .

您可以调用类似于

//get the coordinates of the top left corner of the child control within
//the parent
var childTopLeft = childControl.TranslatePoint(new Point(), parentControl);
//check whether or not the child control is returned when you request the element
//at that coordinate through hit testing
var isVisible = (parentControl.InputHitTest(childTopLeft) == childControl);

但是,我应该指出我自己没有尝试过,并且它可能在以下情况下不起作用:
  • 透明项目 - 通常,透明背景会导致控件的 HitTest 传递给父级
  • 部分被遮挡的项目 - 您一次只能 HitTest 一个点,因此如果您的子控件只有一部分可见,您将必须检查正确的点
  • 关于WPF:确定面板是否对用户可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5566715/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com