当控件(例如Grid)透明时
1.IsMouseOver返回False,而我需要的是只要进入该控件的区域,无论是否可见,都返回True,怎么办?
2.MouseMove事件不会触发,我希望能触发

解决方案 »

  1.   

    你搞错了,透明不是由于Opacity属性造成的,而是由于Background的画刷为空新建一个WPF,默认的Grid就是透明的,并非由于设置Opacity造成的
      

  2.   

    <Grid Background="Transparent">
    </Grid>
      

  3.   

    兄弟,太感谢了,你的方法可行,不过是不是有点偏门呢?呵呵WPF中没有提供替代IsMouseOver和MouseMove的属性或事件吗?
      

  4.   

    不偏门,这应该是正道才对。Grid的Background默认是null,即表示它没有背景,在UI上解析为无绘图区域,所以不能响应MouseOver之类的事件,当你设置为Transparent(即#00FFFFFF)时,虽然效果一样,但表示的含义却不一样了,Transparent表示有背景,只不过背景是透明的而已
      

  5.   

    另外需要注意一下,WPF中Control.Background是Brush,而不是Color,Brush是一个引用类型。