如何获取鼠标点击元素时该元素的信息
哎呀呀,在初学过程中总是避免不了踩坑,这不,今晚又踩了一个。多亏了RoutedEventArgs中的Source属性,知根寻源,最后才找到问题元素是哪一位。
前天还是上周,老大说让我把一个切换动画改的简单一些。于是我把原来由平移和缩放组合而成的动画变成了只保留平移动画。谁会知道这一个小小的改动,竟会让效果出了点问题。
就像上边截取的那样,上半部分是原来的代码,下半部分是后来我注释掉的代码。我原以为不就去个动画效果吗,把原来代码注释掉不就行了,可后来发现根本不是这回事。问题就出在那个Value="1497"上。
由于项目所用机器的分辨率规定为1080P,所以左右移动的动画必须保证最少1920的像素距离。否则就会发生即便元素移动了,但由于没有移动出去,导致一些事件还是无法正确传递到下层。而这里更恶心的是,由于动画是将透明度变为0,所以你很难发现到底是哪个元素在上层阻碍了你事件的正确传达。
而这个时候,Source的作用就来了,它可以帮助你寻找到鼠标点击事件发生时,第一个经过的元素类型,写法也很简单,只需要如下使用就行了,如果该元素没有Name的话,可以查看该元素的类型然后倒退寻找。
// 寻找鼠标点击时所经过第一个元素的名称。
private void PreviewMouseButtonDown(object