C# 在画布中播放图像序列
我的WPF表单上有一个画布,我需要在运行时运行一系列图像。如何刷新画布中的图像 对WPF应用程序中的可视元素所做的任何更改都将反映在视图中。无需调用刷新方法即可使更改可见。对于您的应用程序,您可以创建一个Dispatchermer,然后更改您的Image.Source或在每个刻度上替换您的图像 例如: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的回答很有帮助,但
<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;
}
}
}