WinRT检查PointerPressed在控制之外

时间:2014-06-26 12:03:55

标签: c# windows-runtime focus

我有一个名为ListViewControl的Control,我在这个Control中有一个ListView。 ListView是可切换的(此函数称为ListToggle())。

如何在ListViewControl之外检查用户是否已点击(或按下,如果使用Touch),那么我可以在那里调用ListToggle()吗?

第二种可能性是检查ListViewControl中的所有是否已失去焦点。我可以想象它与儿童元素有关,但我对C#很陌生,这就是为什么我似乎无法弄清楚它。

ListViewControl.LostFocus不起作用,因为每次焦点切换到此Control中的另一个子元素时都会发生此事件。

可悲的是,我发现没什么可用的。只有WPF的东西对我来说没有用。

1 个答案:

答案 0 :(得分:0)

您可以在FocusManager事件发生后使用LostFocus来查看谁得到了关注。

至于点击任何地方 - 您可以在应用中的任意位置检查CoreWindow.GetForCurrentThread().PointerPressed是否触发,并检查它是否在ListView的范围内。否则 - 您可以使用透明ListViewPopup设置为全屏Grid(请务必将其Background设置为Transparent,以使其可以点击/ hit-test-visible)并处理PointerPressed上的Grid