Ala*_*ich 6 silverlight windows-phone-7
我正在寻找有效确定控件是否实际可见和可点击的方法.我的意思是除了检查对象的Visibility属性.
我可以检查RenderSize,如果任何父元素被折叠,那将是[0,0].所以这也很简单.我还可以遍历可视化树,看看是否所有元素的不透明度都设置为1.
我不知道如何很好地检查这些情况:
更新(另一个场景)
有更好的想法吗?我错过了什么吗?
谢谢!
您可以以编程方式测试HitTestVisible元素的可见性和属性,但是除此之外,您实际上无法测试单击事件是否将转发到该元素或被其上方的元素吞没 - 因为在事件中可能会发生阻止或转发点击您根本无法以通用方式确定的处理程序方法。
举个例子:
ParentElement有ChildElementChildElement有一个附加的事件处理程序来处理单击事件,它是可见的并且其HitTestVisible属性设置为 true。ParentElement:在它的单击事件处理程序中,ChildElement可以将事件的Handled属性设置为 true,这将阻止 ParentPanel 接收事件,也可能将其保留为 false,从而使 ParentPanel接收事件。因此,如果涉及自定义事件处理程序,您将无法确定某个元素是否可单击。您最多可以做的是检查子元素和父元素的Visiblity和IsHitTestVisible属性,并使用该方法检查子元素/父元素相对于彼此呈现的位置TransformToVisual。