да, нет, отмена подтверждения в Silverlight - PullRequest
3 голосов
/ 03 мая 2010

Мне нужно иметь да Нет Отменить окно подтверждения в моем приложении Silverlight. Я пытаюсь использовать дочернее окно для этой цели. Но this.Show(); не ждет, пока пользователь введет свои данные.

Любая помощь?

Спасибо

PS: я новичок в Silverlight

Ответы [ 6 ]

16 голосов
/ 03 мая 2010

Если у вас все в порядке только с помощью кнопок OK и Отмена, вы также можете использовать окно сообщений, хотя оно выглядит не так уж и красиво.

MessageBoxResult result = MessageBox.Show("Lorem ipsum doso mitus dasam ...", 
    "The title", MessageBoxButton.OKCancel);

if (result == MessageBoxResult.OK) {
    MessageBox.Show("You clicked OK");
}
5 голосов
/ 04 мая 2010

Используйте дочернюю форму, так как вы в настоящее время просто переставляете код, где Show называется: -

void SomeMethod()
{
   var dialog = new YesNoCancelDialog();
   dialog.Closed += (s, args) =>
   {
     switch (dialog.Result)
     {
        //Handle resulting user choice
     }
   }
   dialog.Show();
}
1 голос
/ 18 января 2011

Проверьте этот проект http://silverlightmsgbox.codeplex.com/. Он представляет собой простую, но презентабельную реализацию нескольких полезных окон сообщений, то есть подтверждения, ошибки, информации, ввода пользователя и т. Д. И может быть полезен для вас. Удачи.

0 голосов
/ 15 марта 2016

Если вы используете System.Windows.MessageBox, убедитесь, что вы вызываете .Show () в потоке пользовательского интерфейса. Кроме того, оцените аргументы MessageBox.Show перед передачей замыкания в BeginInvoke, чтобы избежать небезопасного доступа к потоку.

var message = MyUnsafeObjectAccess.Foobar;
Deployment.Current.Dispatcher.BeginInvoke(() => MessageBox.Show(message)); // safe
0 голосов
/ 03 мая 2010
0 голосов
/ 03 мая 2010

Если вы хотите дождаться пользовательского ввода, пока приложение не продолжится, вам нужно подумать о реализации модального диалога, вы можете найти в Google много разных реализаций, но если вам нужна дополнительная помощь, я могу дать вам несколько указатели:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...