为何不能在item上点击鼠标选择都无法触发SelectionChanged事件呢?

努力的阿牛 2012-05-05 10:55:02
blend4里面自带的开源程序wall3D,一个3D墙,界面好漂亮,我现在想改一下。想设计为点击每张图片后可以在下面显示大图,但目前的问题是点击了里面的一副图片后,收不到ListBox的SelectionChanged事件。里面有个listbox控件,为何不能在item上点击鼠标选择都无法触发SelectionChanged事件呢?
演示地址:http://silverlike.net/silverlight/index.php?xap=%2Fwp-content%2Fuploads%2Fxap%2FWall3D.xap&TB_iframe=true&caption=3D+Wall+Gallery&height=400&width=650
...全文
225 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjxluck 2012-05-08
  • 打赏
  • 举报
回复

//ListBox中,MouseLeftButtonDown事件是一个RoutedEvent , 并且在routing过程中被标记handled,
//因此ListBox不会再抛出该事件,因此你的事件处理方法也无从相应。
ColdBox.AddHandler(ListBox.MouseLeftButtonDownEvent, new MouseButtonEventHandler(ColdBox_MouseLeftButtonDown), true);

用鼠标左键代替
沝林 2012-05-07
  • 打赏
  • 举报
回复
可能是默认模板里对控件某层的布局控件设置了IsHitTestVisible="False",也可能在控件代码中设置的,前者通过重新设计模板可以解决,后者需要修改源码;

也可能在点击事件被拦截,这个也需要修改代码
岁月无情_1 2012-05-07
  • 打赏
  • 举报
回复
他那个应该是用了template,你直接写selectionchanged事件可能取不到,尝试一下在他的template的根容器上用mouseleftbuttondown事件试试
Architecture Net 2012-05-06
  • 打赏
  • 举报
回复
你看看是否是路由事件被拦截。或者是因为这个图片上面还有一个遮罩层呢?

8,737

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧