Вступление
В Silverlight-проектах существует класс MessageBox для вывода системных сообщений. Его возможности существенно ограничены. А в XNA Framework есть похожий класс BeginShowMessageBox, обладающий гораздо большей функциональности. Попробуем взять класс из XNA Framework и внедрить его в свой Silverlight-проект.
Стандартный MessageBox
Для начала посмотрим, как работает стандартный MessageBox и разберем его недостатки.
Основные недостатки системного диалогового окна с сообщением:
Вызов окна сопровождается вибрацией (не отключается)
Вызов окна сопровождается звуком (не отключается)
Есть только два варианта кнопок (Одна кнопка OK или две кнопки OK и Cancel). Текст кнопок не редактируется
Стандартный вызов диалогового окна выглядит следующим образом.
private void butSimpleMessageBox_Click(object sender, RoutedEventArgs e)
{
if(MessageBox.Show("Вы любите котов?", "Вопрос", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
{
textBlockAnswer.Text = "Я вас тоже люблю";
}
else
{
textBlockAnswer.Text = "Кто не любит котов — собаки";
}
}
Продвинутый MessageBox
Как видите, диалоговое окно очень сильно ограничивает разработчика - самая главная беда: никак не поменять текст на кнопках. Но, оказывается в XNA Framework есть собственный класс Guide.BeginShowMessageBox, который лишен подобных недостатков. Класс позволяет задать одну или две кнопки и использовать свой текст для кнопок. А для отключения звука и вибрации нужно выбрать вариант MessageBoxIcon.None в параметре, который отвечает за вывод значка в окне с сообщением.
Чтобы использовать класс Guide.BeginShowMessageBox в Silverlight-проекте, нужно сначала установить ссылку на пространство имен Microsoft.Xna.Framework.GamerServices. Для удобства создадим новый класс-обертку MessageBoxEx, в котором будет выполняться вся работа.
Read more: Alexsander Klimov
В Silverlight-проектах существует класс MessageBox для вывода системных сообщений. Его возможности существенно ограничены. А в XNA Framework есть похожий класс BeginShowMessageBox, обладающий гораздо большей функциональности. Попробуем взять класс из XNA Framework и внедрить его в свой Silverlight-проект.
Стандартный MessageBox
Для начала посмотрим, как работает стандартный MessageBox и разберем его недостатки.
Основные недостатки системного диалогового окна с сообщением:
Вызов окна сопровождается вибрацией (не отключается)
Вызов окна сопровождается звуком (не отключается)
Есть только два варианта кнопок (Одна кнопка OK или две кнопки OK и Cancel). Текст кнопок не редактируется
Стандартный вызов диалогового окна выглядит следующим образом.
private void butSimpleMessageBox_Click(object sender, RoutedEventArgs e)
{
if(MessageBox.Show("Вы любите котов?", "Вопрос", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
{
textBlockAnswer.Text = "Я вас тоже люблю";
}
else
{
textBlockAnswer.Text = "Кто не любит котов — собаки";
}
}
Продвинутый MessageBox
Как видите, диалоговое окно очень сильно ограничивает разработчика - самая главная беда: никак не поменять текст на кнопках. Но, оказывается в XNA Framework есть собственный класс Guide.BeginShowMessageBox, который лишен подобных недостатков. Класс позволяет задать одну или две кнопки и использовать свой текст для кнопок. А для отключения звука и вибрации нужно выбрать вариант MessageBoxIcon.None в параметре, который отвечает за вывод значка в окне с сообщением.
Чтобы использовать класс Guide.BeginShowMessageBox в Silverlight-проекте, нужно сначала установить ссылку на пространство имен Microsoft.Xna.Framework.GamerServices. Для удобства создадим новый класс-обертку MessageBoxEx, в котором будет выполняться вся работа.
Read more: Alexsander Klimov