Как я могу проверить, было ли изменено изображение PictureBox? - PullRequest
1 голос
/ 25 октября 2011

Я сейчас работаю над суперсекретным приложением, на котором есть PictureBox.Есть несколько вариантов редактирования изображения внутри PictureBox, включая (но не ограничиваясь ими) сепию, оттенки серого и некоторые повороты.

В настоящее время, однако, нет никакого способа проверить,изображение было изменено - так как я пытался создать "Хотите сохранить изменения ??!"диалоговое окно, которое появилось бы, если изображение было изменено каким-либо образом.

У меня есть все фактические модификации , установленные в камне на данный момент - все, что мне нужно, это надежныйметод проверки, если изображение PictureBox было изменено.

Ответы [ 3 ]

2 голосов
/ 25 октября 2011

ммм .. Каждый раз, когда пользователь использует опцию для редактирования изображения, просто установите флаг в значение true. Таким образом, вы узнаете, что изображение изменилось ... на самом деле, вы как-то меняете его, так что вы знаете, когда оно изменилось!

0 голосов
/ 25 октября 2011

Есть несколько вариантов редактирования изображения внутри PictureBox, включая (но не ограничиваясь ими) сепию, оттенки серого и некоторые вращения.

private bool isChanged = false;

void Apply_sepia() {
   isChanged = true;
   // apply sepia
}


void close(...) {
    if(isChanged) {
        if(MessageBox.Show("Are you sure?", SomethingOptions.YesNo) == MessageBoxOptions.Yes) {
            Application.Exit();
        }
    } else {
        Application.Exit();
    }
}

Я, очевидно, не могу вспомнить, какие правильные имена свойств .. однако вы понимаете суть.

0 голосов
/ 25 октября 2011

Происходит ли событие BackgroundImageChanged?Используйте это.http://msdn.microsoft.com/en-us/library/system.windows.forms.control.backgroundimagechanged.aspx

...