В этой статье мы обсудим 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 заканчивается.