鼠标进入离开DataGrid的行的操作。

今天在论坛上看到一个人想实现这样的一个功能:

1. 在datagrid空间里有很多行很多列。

2. 其中的一列有两个空间: button和image

3. 默认情况下,显示Button,如果当鼠标Hover该行的时候,则显示图片,隐藏button;当鼠标离开的时候,就隐藏图片,显示button.

下面是datagrid的 xaml代码:

datagrid

 

如果有实现鼠标的操作,需要用到datagrid两个事件 :MouseEnter 、MouseLeave 。

这两个事件需要在datagrid的rowloading事件里面注册:

注册鼠标的事件

 

事件

 

然后根据鼠标的操作,使用VisualTreeHelper 找到datagrid的controlTemplate中的控件,然后显示或隐藏他们:

 

控件的显示/隐藏


          由于图片 和button控件的高度的差别,在从图片切换到Button的时候,发现datagrid的行变得比较高,没有自适应高度。所以需要在MouseEnter 、MouseLeave 事件中,手动的设置行高。

posted @ 2008-10-21 18:24  Amanda2007  阅读(362)  评论(0编辑  收藏  举报