我学C#WPF学门扭不动的什么原因了咋办

初学WPF遇到一些问题请各位高手幫忙.

我在Canvas中放了两个矩形一大一小。大矩形的透明度为0.5小矩形为不透明。现在将大的矩形覆盖到小矩形上面然后如何选中小矩形呢。

------解决方案--------------------把需要选中的控件放最上层鼠标点击事件只能给最上层的控件捕获,至于要传递到下层只能自己写代码传递,WPF不会自动帮你傳递

只能便历Canvas里面的矩形

假如大小矩形都满足条件,则2个选一个咯

1. 但你在上面(ZIndex大)的那个Rectangle中点下鼠标会触发wpf做一系列的hittest,找出满足条件嘚元素可以肯定的是,只有一个这个元素就是source

5. 所以在这个流程中另外一个Rectangle根本没有参与,这就是无法收到的原因

6. 在这个基础上如果伱需要让另外的Rectanglek可以收到事件通常2个思路

a. 让第一个ishittestvisible=false,不参与hittest流程那么后一个就会被选中,不过这个可能不适用你的情况

b. 在隧道流到达Canvas时让Canvas截获,然后遍历其Children让每个Child做HitTest,人为改变事件流程那么就可以达到你要的效果

}

我要回帖

更多关于 门扭不动的什么原因 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信