CustomMessageBox: как использовать с ListPicker в PickerMode.Expanded?

Я пытался использовать CustomMessageBox с помощью средства выбора списков в PickerMode.Expanded, но у меня возникли проблемы.

Те же проблемы можно увидеть при запуске CustomMessageBoxSample после изменения ItemsSource = new string[] { "5 минут", "10 минут", "1 час", "4 часа", "1 день", "2 дня", "10 day" }, то есть с более чем 5 элементами, поэтому он будет открыт в FullMode по умолчанию.

В этом случае, оставив другой пример кода без изменений, при нажатии средства выбора списка открывается страница выбора полного режима, но после выбора весь CustomMessageBox закрывается (вы не можете решить, нажимать ли на него левую или правую кнопку). Я попытался изменить код следующим образом, но в этом случае страница выбора полного режима открывается позади messageBox и не может быть видна, и выбор не может быть сделан (вы можете увидеть это в сером, если вы поставили много элементов, чтобы он имел длинный список элементов, поэтому некоторые из них могут отображаться в фоновом режиме под окном сообщения на переднем плане.

messageBox.Dismissing += (s1, e1) =>
            {

                //if ((listPicker.ListPickerMode == ListPickerMode.Expanded) 
                if ((listPicker.ListPickerMode == ListPickerMode.Expanded) || (listPicker.ListPickerMode == ListPickerMode.Full))
                {
                    e1.Cancel = true;
                }
            };

Я попытался также с помощью следующего кода, но страница выбора fullMode, хотя теперь она видна, не включена, поэтому выбор невозможен...

messageBox.Dismissing += (s1, e1) => {
 if (listPicker.ListPickerMode == ListPickerMode.Expanded) 
  {
     e1.Cancel = true;
  }
 else if (listPicker.ListPickerMode == ListPickerMode.Full)
  {
      e1.Cancel = true;
      messageBox.Visibility = Visibility.Collapsed;
      //listPicker.IsEnabled = true; //???
      // listPicker.Focus(); //???
      // listPicker.UpdateLayout(); //???
  }
};

listPicker.SelectionChanged += (s3, e3) => {
  if (listPicker.ListPickerMode == ListPickerMode.Full) {
    messageBox.Visibility = Visibility.Visible;
  }
};

Любое предложение?

Спасибо Энцо Контини

0 ответов

Другие вопросы по тегам