Есть следующий код в XAML:
<Label Name="lblImageSource11" Content="" Height="0" Width="0" />
<Image Name="image1" MouseDown="MenuImage_MouseDown" Source="{Binding Content, ElementName=lblImageSource1}"/>
В некоторый период времени мне необходимо заменить файл, рисунок, на который ссылается в данный момент Image, при помощи команды File.Copy(...).
Для этого я сначала освобождаю ресурс, файл, таким путем:
this.lblImageSource11.Content = "";
Проблема в том, что даже в этом случае при копировании у меня выбрасывается ошибка, что ресурс занят программой.
Что можно сделать в данном случае, чтобы решить эту проблему?
15.08.07 14:40: Перенесено модератором из '.NET' — TK
Здравствуйте, netalex, Вы писали:
N>Проблема в том, что даже в этом случае при копировании у меня выбрасывается ошибка, что ресурс занят программой. N>Что можно сделать в данном случае, чтобы решить эту проблему?
Видно елемент <Image /> не может загрузить новую картинку и продолжает отображать предыдущую.
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Здравствуйте, TK, Вы писали:
TK>Здравствуйте, netalex, Вы писали:
N>>Проблема в том, что даже в этом случае при копировании у меня выбрасывается ошибка, что ресурс занят программой. N>>Что можно сделать в данном случае, чтобы решить эту проблему?
TK>Видно елемент <Image /> не может загрузить новую картинку и продолжает отображать предыдущую.
Нет, при этом картинки я мог без проблем загружать новые и просматривать их.
Если кому интересно, я нашел решение проблемы:
Здравствуйте, netalex, Вы писали:
N>Здравствуйте, TK, Вы писали:
TK>>Здравствуйте, netalex, Вы писали:
N>>>Проблема в том, что даже в этом случае при копировании у меня выбрасывается ошибка, что ресурс занят программой. N>>>Что можно сделать в данном случае, чтобы решить эту проблему?
TK>>Видно елемент <Image /> не может загрузить новую картинку и продолжает отображать предыдущую.
N>Нет, при этом картинки я мог без проблем загружать новые и просматривать их. N>Если кому интересно, я нашел решение проблемы:
N><Image Name="image1" />
N>private void Button1_Click(object sender, RoutedEventArgs e) N>{ N> FileStream file = new FileStream("c:\image1.jpg", FileMode.Open); N> BitmapDecoder bitmap = BitmapDecoder.Create(file, BitmapCreateOptions.None, BitmapCacheOption.OnLoad); N> this.image1.Source = bitmap.Frames[0]; N> file.Close(); N>}
N>После этого можно без проблем работать с файлом