解决MouseLeftButtonDown在Grid等布局中无法响应事件 - [Silverlight开发]


有些时候发现有些问题的解决方法是很简单的,只是在想问题时习惯了把它想得太过于复杂。这个小问题也困扰了自己一个多小时,然后,通过查询下资料,解决了这个问题。

问题:在用Sliverlight开发一个类WebOS性质的小项目,然后在桌面(一个Grid布局)中需要用鼠标进行拖拽实现多个桌面的切换,也就是说需要监听mouseleftbuttondown,mousemove,mouseleftbuttonup这个事件,并计算进行响应操作。

问题就出在,那个桌面是一个Grid容器,里面又放置StackPanel窗口,StackPanel容器里放置图片按钮,当我直接给那个外层的Grid设置一个MouseLeftButtonDown = "方法"时,点外面没有图标的地方时却响应不了事件;



解决方法:然后,问题的解决方法其实很简单的,只要把外层那个Grid的background设置一个值就可以的,例如可以设置一个Transparent,这个既不影响其他操作,也可以很方便的捕获事件。Problem Solved.

小DEMO:


可以看到上面的效果,其中第一个是没有设置background的,所以你只有点击到有textblock的地方才有反应,而右边的因为设置一个Transparent,所以就可以正常捕获事件,但我不是很明白为什么会这样,得研究下具体的原因才行。

 
posted @ 2011-08-10 14:00  卿之  阅读(1139)  评论(2编辑  收藏  举报
无觅相关文章插件,快速提升流量