2015-09-10 3 views
2

В моем приложении форм Xamarin я хочу отключить взаимодействие пользователя с текущей страницей при отображении пользовательского всплывающего окна. Как я могу блокировать взаимодействие с пользователем на панели инструментов. Пользователь не может коснуться панели инструментов при отображении окна предупреждения по умолчанию, используя следующий метод:Отключить взаимодействие пользователя с текущей страницей

DisplayAlert (...); Но я использую настраиваемое всплывающее окно. Пожалуйста, помогите мне.

+0

Как вы реализовали свое пользовательское всплывающее окно? DialogFragment? –

+0

Я использую сетку для пользовательского всплывающего окна на странице. Дисплей обрабатывается свойством Isvisible. –

+0

Вы могли бы просто деактивировать каждую кнопку и т. Д. Вручную, пока вы показываете свою сетку, но я бы рекомендовал вместо этого использовать DialogFragment, потому что это более распространенный способ сделать это, и он будет вести себя как ваш типичный диалог (Locking взаимодействия и т. д.). Вы должны иметь возможность раздуть некоторый xml вашей сеткой в ​​диалоговом окне Dialog. Подробнее об этой теме [из документации xamarin] (https://developer.xamarin.com/guides/android/platform_features/fragments/part_3_-_specialized_fragment_classes/#Displaying_a_Fragment). –

ответ

0

Самый способ MVVM - связать свойство IsEnabled с логическим значением в вашем представленииModel. На показ всплывающего окна вы можете переключать значение ложно, а затем вернуться на отклоняя всплывающее окно:

var label = new Label(); 
label.setBinding<ViewModel>(Label.IsEnabledProperty, vm=>vm.IsEnabledToggle); 
+0

Хотя это действительное решение, я считаю, что его тяжелая работа (писать и поддерживать). Чем больше элементов управления у вас есть, тем больше вам нужно писать. – Johan

+0

Я бы предложил использовать базовые классы и наследование, чтобы обойти проблему дублирования кода. Это относительно общее требование, поэтому оно может быть хорошо оправдано в пользовательском подклассе элемента управления VisualElement. – JordanMazurke

1

this.Content.IsEnabled = ложь;

Он отключил бы сенсорный контент.

Смежные вопросы