2

PickerMode.Expanded の listpicker で CustomMessageBox を使用しようとしましたが、問題が発生しています。

ItemsSource = new string[] { "5 minutes", "10 minutes", "1 hour", "4 hours", "1 day", "2 days"," 10 日" } 、つまり 5 つ以上の要素があるため、デフォルトで FullMode で開きます。

この場合、他のコード例はそのままにして、listpicker をクリックすると fullMode 選択ページが開きますが、選択後、CustomMessageBox 全体が閉じられます (左ボタンまたは右ボタンを押すことはできません)。以下のようにコードを変更してみましたが、この場合は messageBox の後ろに fullMode の選択ページが開いてしまい、表示されず、選択もできません (アイテムをたくさん入れるとグレーで表示されるので、アイテムの長いリストなので、それらのいくつかは前景メッセージボックスの下の背景に表示できます。

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;
  }
};

なにか提案を?

ありがとうエンツォ・コンティーニ

4

0 に答える 0