none
如何在点击listbox自身范围之外的区域让其消失? RRS feed

  • 问题

  • 在page里做了一个listbox,zindex设置的比其他控件要大,让其浮在page之上,有没有什么事件可以侦测鼠标或者手指点击的不是listbox自身的有效区域,而让其消失,类似于输入键盘的做法? 哪位知道告知一下。

    我试过了让page拿到focus作为判断依据让其消失,但是还是不理想。

    2012年3月28日 13:31

答案

  • 你好,

    “ListBox自身有效区域”是指整个ListBox所占的面积么,如果是这样的话,我建议你在MouseLeftButtonDown事件中通过VisualTreeHelper.FindElementsInHostCoordinates方法返回当前点击的位置下所有的Control

            private void ContentPanel_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
            {
                Point p = e.GetPosition(LayoutRoot);
                IEnumerable<UIElement> list = VisualTreeHelper.FindElementsInHostCoordinates(p, LayoutRoot);
                //这里可以循环list判断其中是否有ListBox

            }

    • 已标记为答案 Shi Ding 2012年4月4日 2:51
    2012年3月30日 5:11