Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.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 - Fatal编程技术网

C# 运行时更改图像源的标准方法?

C# 运行时更改图像源的标准方法?,c#,wpf,image,C#,Wpf,Image,我正在制作一个非常简单的Kinect游戏,但是有一个挂断了WPF。我的窗口只是有一个非常大的图像。我有几张图片要在运行时绑定到此图像 我相信我可以找到一种方法使其工作,但我想确保我遵循了以这种方式使用图像资源的最佳实践。我对wpf非常陌生(但对C#没问题),所以如果这是一个微不足道的问题,我很抱歉 所以我的问题是:当想要定期更改WPF图像的源时,最佳实践是什么 谢谢 您的窗口有ViewModel(MVVM模式)吗?我认为数据绑定+触发器可能是一个不错的选择。 var open =

我正在制作一个非常简单的Kinect游戏,但是有一个挂断了WPF。我的窗口只是有一个非常大的图像。我有几张图片要在运行时绑定到此图像

我相信我可以找到一种方法使其工作,但我想确保我遵循了以这种方式使用图像资源的最佳实践。我对wpf非常陌生(但对C#没问题),所以如果这是一个微不足道的问题,我很抱歉

所以我的问题是:当想要定期更改WPF图像的源时,最佳实践是什么

谢谢

您的窗口有ViewModel(MVVM模式)吗?我认为数据绑定+触发器可能是一个不错的选择。
        var open = new System.Windows.Forms.OpenFileDialog { Multiselect = false };
        if (open.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            FileInfo fi = new FileInfo(open.FileName);
            try
            {
                imgBack.Source = new BitmapImage(new Uri(fi.FullName));
            }
            catch (Exception)
            {
                imgBack.Source = new BitmapImage(new Uri(App.DefaultBackImgPath));
            }

            ImageBrush brush = new ImageBrush();
            brush.ImageSource = imgBack.Source;
            System.Windows.Application.Current.Resources["BackBrush"] = brush;
         }