datagrid上绑定了一列如下(多么寻常的做法啊...):
<DataTemplate>
<Image Source="{Binding HealthStatus}" Width="85" Height="85" Cursor="Hand" VerticalAlignment="Center"
MouseEnter="Image_MouseEnter" MouseLeave="Image_MouseLeave"></Image>
</DataTemplate>
然后,在鼠标浮动上去和离开的事件里改变了Image Source(就是换了另一张图片).结果和意料中一样的效果奇迹般的出现了....
但是...就在第二天...
就在第二天客户乱点时意外发生了....
当鼠标浮动过任意一个图片后,再去下拉上拉右侧的DataGrid的滚动条...来回几次...发现图片显示的混乱了...
就是说本来应该显示的图片变成另外一个了...
起初我不相信自己的眼睛,以为是幻觉...但后来事实证明这真的不是幻觉...
再后来在时间的压力下.我们采取了动画的效果让图片能放大缩小(但客户是要求两张图片变换显示的,就是不单单是放大缩小那么单纯)...
但那个问题还是始终萦绕在我心头...
所以,大家可有遇到过?
鼠标浮动事件的操作大概是酱紫的...
string uri = (im.Source as BitmapImage).UriSource.ToString();
string uriTmp = "";
switch (uri) {
case "/Images/健康_OVER.png":
uriTmp = "/Images/健康.png";
break;
case "/Images/亚健康_OVER.png":
uriTmp = "/Images/亚健康.png";
break;
}
BitmapImage bitImage = new BitmapImage(new Uri(uriTmp, UriKind.RelativeOrAbsolute));
im.Source = bitImage;