Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.
Внимание! Некоторое время письма не доходят до аккаунтов MAIL RU GROUP, не доходят на все почтовые ящики mail.ru, inbox.ru, bk.ru. Пишите им жалобы, чтобы быстрее восстановили получение писем, регистрируйтесь через яндекс почту и gmail, туда письма с активизацией доходят.

Вернуться   Форум программистов > .NET > WPF, UWP, WinRT, XAML
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 10.01.2018, 00:27   #1
senehka07
 
Регистрация: 31.10.2017
Сообщений: 4
Репутация: 10
Стрелка Удалить изображение из ImageBrush

Имеется форма. На ней Border и Button. У Border на фоне стоит картинка из папки "c:\Pfolder". Фоновую картинку ставлю так:
Код:

BitmapImage bi = new BitmapImage();
bi.UriSource = new Uri("c:\Pfolder\pic.png");          
ImageBrush ib = new ImageBrush();
ib.ImageSource = bi;
Border1.Background = ib;

При нажатии на Button открывается openFileDialog и выбирается картинка. Эта картинка копируется в папку "c:\Pfolder". Но так как в этой папке уже есть картинка, то её нужно удалить, чтобы поместить новую. При попытке удалить картинку появляется ошибка:
Цитата:
Процесс не может получить доступ к файлу "C:\Pfolder\pic.png", так как этот файл используется другим процессом.
Код:
Код:

System.Windows.Forms.OpenFileDialog openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
openFileDialog1.Filter = "BMP|*.png";
var dr = openFileDialog1.ShowDialog();

if (dr == System.Windows.Forms.DialogResult.OK)
{
    var filename = @"C:\Pfolder\pic.png";
    Border1.Background = null;
    if (File.Exists(filename))
    {
          File.Delete(filename); //тут появляется ошибка
    }

    File.Copy(openFileDialog1.FileName, filename);
                
    var ib = new ImageBrush();
    ib.ImageSource = new BitmapImage(new Uri(filename, UriKind.Relative));
    Border1.Background = ib;
}

Вопрос: как удалить предыдущую картинку и на её место поставить новую?

Последний раз редактировалось senehka07; 10.01.2018 в 00:37.
senehka07 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ImageBrush + SolidColorBrush [C#, WPF] pashka_dos WPF, UWP, WinRT, XAML 3 07.07.2013 15:53
Забиндить ImageBrush ImageSource coNsept Общие вопросы .NET 1 28.11.2012 05:00
удалить дубли в tstringlist, и удалить по списку AHTOLLlKA Компоненты Delphi 2 17.01.2010 11:20
Как удалить ранее нарисованное изображение Xcopy Паскаль 3 30.03.2009 08:50
как удалить анти вирус( касперский 2006)если она не работает и ее не возможно удалить Alar Общие вопросы Delphi 0 29.10.2006 22:36


08:27.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru