谁遇到过这样的问题吗

时间:2022-05-04 19:17:24

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;