Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在画布中播放图像序列_C#_Wpf_Image_Wpf Controls - Fatal编程技术网

C# 在画布中播放图像序列

C# 在画布中播放图像序列,c#,wpf,image,wpf-controls,C#,Wpf,Image,Wpf Controls,我的WPF表单上有一个画布,我需要在运行时运行一系列图像。如何刷新画布中的图像 对WPF应用程序中的可视元素所做的任何更改都将反映在视图中。无需调用刷新方法即可使更改可见。对于您的应用程序,您可以创建一个Dispatchermer,然后更改您的Image.Source或在每个刻度上替换您的图像 例如: <Canvas> <Image x:Name="myImage" Source="SomeUri"/> </Canvas> ColinE的回答很有帮助,但

我的WPF表单上有一个画布,我需要在运行时运行一系列图像。如何刷新画布中的图像

对WPF应用程序中的可视元素所做的任何更改都将反映在视图中。无需调用刷新方法即可使更改可见。对于您的应用程序,您可以创建一个Dispatchermer,然后更改您的Image.Source或在每个刻度上替换您的图像

例如:

<Canvas>
  <Image x:Name="myImage" Source="SomeUri"/>
</Canvas>

ColinE的回答很有帮助,但是我们还需要能够使用filestream,如下所示,以便我们可以刷新或修改以前显示的图像:

                            FileInfo fileinfo = new FileInfo(MyFilePath);
                            if (fileinfo.Exists)
                            {
                                using (FileStream fs = System.IO.File.Open(MyFilePath,
                                                    FileMode.Open,
                                                    FileAccess.Read,
                                                    FileShare.ReadWrite))
                                {
                                    using (StreamReader reader = new StreamReader(fs))
                                    {

                                        BitmapImage bitImg = new BitmapImage();
                                        bitImg.BeginInit();
                                        bitImg.StreamSource = fs;
                                        bitImg.EndInit();
                                        Image.ImageSource = bitImg;

                                    }
                                }
                            }

试试这个我试过了,它确实有效,但是我不能删除或替换先前显示的图像。它们还被画布打开吗?为什么画布图像上有钩子?我正在使用此代码刷新uri:urinewuri=newUri@inputA; Image.ImageSource=新的BitmapImagenewUri;尝试canvas.Children.Clear-如果我的答案有帮助,请投票或接受。它不起作用。是否有其他方法可以清除或删除旧图像和画布之间的连接?谢谢你的帮助。这应该满足你的问题,尽管我不喜欢像这样直接操纵视图。到底是什么问题?
                            FileInfo fileinfo = new FileInfo(MyFilePath);
                            if (fileinfo.Exists)
                            {
                                using (FileStream fs = System.IO.File.Open(MyFilePath,
                                                    FileMode.Open,
                                                    FileAccess.Read,
                                                    FileShare.ReadWrite))
                                {
                                    using (StreamReader reader = new StreamReader(fs))
                                    {

                                        BitmapImage bitImg = new BitmapImage();
                                        bitImg.BeginInit();
                                        bitImg.StreamSource = fs;
                                        bitImg.EndInit();
                                        Image.ImageSource = bitImg;

                                    }
                                }
                            }