要检查的最佳解决方案是一个控件位于其他控件上。
例如,我有两个TextBox,当一个TextBox超过另一个时,我需要隐藏其中一个。
我需要确定在将它们添加到visul树之前重叠这个cotnrols!
答案 0 :(得分:3)
我认为你的意思是你想知道它们是否在Z维度上重叠?
未测试:
// requires System.Windows.Controls.Toolkit.dll
using System.Windows.Controls.Primitives;
// ...
Rect? rect1 = myControl1.GetBoundsRelativeTo(someParentContainer);
Rect? rect2 = myControl2.GetBoundsRelativeTo(someParentContainer);
bool areIntersecting = rect1 != null && rect2 != null
&& rect1.Value.Intersect(rect2.Value) != Rect.Empty;
答案 1 :(得分:-1)
如果您使用的是工具而非程序化解决方案,snoop会为WPF应用执行此操作。它会在运行时向您显示应用程序中控件组合的分层视图。
从未使用它,但Silverlight Spy似乎是Silverlight等价物。