2017-12-27 127 views
0

我有一个GridView,并且在此Gridview中有几个包含其他元素的Grid。如果我点击一个GridView元素(一个Grid),我想打开这个元素的细节,但Grid和GridView似乎不支持设置点击方法。单击某个元素时还可以调用方法吗?如何检测GridView中的单击

回答

0

您可以添加一个不可见的矩形或其他元素来注册OnMouseOver事件或单击等。

1

但电网和GridView不似乎支持设置点击方法

使用Tapped事件。

+0

它看起来像它的工作,但只有当我按像一个文本块的网格的可见部分,但不是在t他看不见的部分。我怎样才能让它在那里工作呢? – CodeSharpMarvin

+0

@CodeSharpMarvin你可以分享你迄今为止的代码吗? –

0

您的每一个Grid的应该订阅3个事件,并有透明背景:

<Grid Background="Transparent" PointerPressed="Grid_OnPointerPressed" PointerReleased="Grid_OnPointerReleased" PointerExited="Grid_OnPointerExited"> 

在代码中,你可以模拟这样的单击事件:

private bool _isPressed; 

    private void Grid_OnPointerPressed(object sender, PointerRoutedEventArgs e) 
    { 
     _isPressed = true; 
    } 

    private void Grid_OnPointerReleased(object sender, PointerRoutedEventArgs e) 
    { 
     if (_isPressed) 
     { 
      //your logic on click event 
     } 

     _isPressed = false; 
    } 

    private void Grid_OnPointerExited(object sender, PointerRoutedEventArgs e) 
    { 
     _isPressed = false; 
    } 

或者最简单的方法是来包装你Grid分成Button