最近 使用WPF框架 做模板编辑软件开发,过程中遇到一个很奇怪的问题:
用 System.Windows.Controls.Image 显示 一张bmp图片后作镜像或旋转,却无法更新到Image中去,当时没能注意分析这个问题,改用的其它方式实现了,但后来改回来再看时,再次发现该问题。
具体操作和故障现象:
将bmp图片用BitmapImage载入,指定为Image控件的Sourcer显示 。将bmp图片镜像后,第二次再用BitampImage指定为Image的图片源。发现Image显示 的仍是上一张bmp图片,很奇怪该图片源已被镜像处理过,按正常来讲显示的是镜像后的图片。仔细核对后未并见代码有何异常:
尝试将BitmapImage旋转:bitmapImg.Rotation = Rotation.Rotate90 图片能正常显示 出刚刚更改的效果了。
多次尝试之后 ,发现是新指定的BitmapImage图片源(图片路径)与上次相同,且其它参数不做任何更改,程序会载入上一次保留的bmp图片。导致无论怎样修改 Image图片源 后重新载入,它都不更新到界面。
解决方法是
1.载入的路径 与上次的图片路径不同
2.BitmapImage 参数更改,如旋转等。
这样当BitmapImage参数有了变化 ,程序中Image的图片才更新显示 ,否则 显示 的仍是上一次的图片。