В этой статье мы обсудим MessageBox в Windows Phone 7. Мы также обсудим, как настроить MessageBox в Windows Phone 7. Мы будем использовать Microsoft.Xna.Framework.GamerServices для создания настройки MessageBox в Windows Phone 7.
Давайте напишем некоторый код:
Шаг 1. Создайте проект приложения для Windows Phone.
Шаг 2: Давайте добавим три кнопки в MainPage.xaml. Первые две кнопки будут использоваться для демонстрации нормального окна сообщения. Первое окно сообщения будет иметь только кнопку ОК, а второе окно сообщения будет иметь ОК и Отмена оба.
Третья кнопка будет использоваться для демонстрации настраиваемого окна сообщения с использованием Microsoft.Xna.Framework.GamerServices.
Текстовое поле будет использоваться для отображения, какая кнопка окна сообщения была нажата.
<Button Content="Ok Demo" Height="72" HorizontalAlignment="Center"
Margin="0,0,0,0" Name="Ok" VerticalAlignment="Top" Width="160" Click="Ok_Click" />
<Button Content="Ok Cancel Demo" Height="72" HorizontalAlignment="Center"
Margin="0,75,0,0" Name="OkCancel" VerticalAlignment="Top" Width="260" Click="OkCancel_Click" />
<Button Content="XNA MessageBox Demo" Height="72" HorizontalAlignment="Center"
Margin="0,150,0,0" Name="XNAMessageBox" VerticalAlignment="Top" Width="340" Click="XNAMessageBox_Click" />
<TextBlock x:Name="MessageResult" Text="" Style="{StaticResource PhoneTextNormalStyle}" HorizontalAlignment="Center" Margin="0,170,0,0" Height="40"/>
Шаг 3: Добавьте ссылку на Microsoft.Xna.Framework.GamerServices
Шаг 4: Добавьте приведенный ниже код для первых двух кнопок, чтобы получить ОК и ОК и окно сообщения Отмена.
private void Ok_Click(object sender, RoutedEventArgs e)
{
MessageBoxResult res = MessageBox.Show("OK", "First Message Box", MessageBoxButton.OK);
if (res == MessageBoxResult.OK)
{
MessageResult.Text = "Ok Selected";
}
}
private void OkCancel_Click(object sender, RoutedEventArgs e)
{
MessageBoxResult res = MessageBox.Show("OK and Cancel", "First Message Box", MessageBoxButton.OKCancel);
if (res == MessageBoxResult.OK)
{
MessageResult.Text = "Ok Selected";
}
if (res == MessageBoxResult.Cancel)
{
MessageResult.Text = "Cancel Selected";
}
}
MessageBoxButton имеет только два свойства OK и OKCancel
MessageBoxResult имеет Отмена, Нет, Нет, ОК и Да.
Теперь MessageBoxButton имеет только опции OK и OKCancel, но MessageBoxResult имеет опции Отмена, Нет, Нет, OK и Да. Так как в «MessageBoxButton» нет «Да» и «Нет», значит, нет опции «Да» и «Нет» в MessageBoxResult. Infact None опция MessageBoxResult также не имеет никакого значения.
Теперь давайте добавим код для третьей кнопки.
private void XNAMessageBox_Click(object sender, RoutedEventArgs e)
{
//0 specifies index of focus of button
Guide.BeginShowMessageBox("XNA MessageBox Demo", "This is XNA Message Box", new string[] { "Custom OK", "Custom Cancel" }, 0,MessageBoxIcon.Warning, new AsyncCallback(OnMessageBoxAction), null);
}
Signture of Guide.BeginShowMessageBox
Имя кнопки можно настроить с помощью Microsoft.Xna.Framework.GamerServices. Я использовал заголовок кнопки MessageBox как Custom OK и Custom Cancel.
Кнопка MessageBoxIcon имеет Alert, Error, None и Warning.
Ни один звук не будет генерироваться, я получил такой же звук для остальных трех предупреждений, ошибок и предупреждений.
Чтобы выполнить любое действие, основанное на выбранной опции, необходимо вызвать асинхронный метод.
private void OnMessageBoxAction(IAsyncResult ar)
{
int? selectedButton = Guide.EndShowMessageBox(ar);
switch (selectedButton)
{
case 0:
Deployment.Current.Dispatcher.BeginInvoke(() => MessageResult.Text = "Custom Ok Selected" );
break;
case 1:
Deployment.Current.Dispatcher.BeginInvoke(() => MessageResult.Text = "Custom Cancel Selected");
break;
default:
break;
}
}
Шаг 5: Теперь запустите приложение.
При нажатии любой из вышеперечисленных кнопок вы увидите окно сообщений другого типа.
На этом статья окна Windows Phone 7 заканчивается.