WPF--Image控件動態顯示圖片問題筆記


  最近想弄個基於WPF的動態影集,主要思想就是一個Image控件顯示圖片,添加一個Timer定時設置每秒更新一張圖片。在弄的過程中發現一些小問題,在這里記下來留着以后查看!

  1:設置Iamge的Source屬性的時候,在前台Xaml文件可以設置為路徑的字符串格式,但是在后台cs文件需要構造一個Bitmap的實例賦值給Image的Source屬性,還要注意實例化Uri類的時候需要傳進來一個UriKind.Relative的枚舉。如下:

              Uri uri = new Uri("/Images/" + curImage,UriKind.Relative);
            BitmapImage bitmap = new BitmapImage(uri);
            myImage.Source = bitmap;

  2:實現圖片每秒更新的時候,需要注意不能用一個timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);事件直接實現更新,會報出“調用線程無法訪問此對象,因為另外一個線程擁有此對象”的異常。

                                    

  這時的解決方案是定義一個委托,用異步Dispatcher.Invoke()實現!如下所示:

         private delegate void TimerDispatcherDelegate();

        private void autoShow_Click(object sender, RoutedEventArgs e)
        {
            timer = new Timer();
            timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
            timer.Interval = 1000;
            timer.Enabled = true;
            timer.Start();
        }

        void timer_Elapsed(object sender, ElapsedEventArgs e)
        {
            this.Dispatcher.Invoke(DispatcherPriority.Normal, new TimerDispatcherDelegate(UpdataImage));
        }
void UpdataImage()
        {
            NextImage(imageList, imageIndex, curImage, uri);
        }
     

主界面代碼如下:http://www.cnblogs.com/PaulMa/admin/Files.aspx
 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM