У меня есть всплывающее окно, которое содержит элементы управления DatePicker и связанные текстовые блоки, позволяющие пользователю выбирать критерии диапазона дат. У меня также есть переключатель "Использовать все даты". Если для этого установлено значение «Вкл.», Я хочу отключить элементы управления диапазоном дат или, по крайней мере, дать им вид, что они отключены.
Я пробовал вот так:
private void tglswtchAllDates_Toggled(object sender, RoutedEventArgs args)
{
Color enabledColor = Colors.Black;
Color disabledColor = Colors.Gray;
txtblckDateFrom.Foreground = enabledColor;
txtblckDateTo.Foreground = enabledColor;
txtblckInclusive.Foreground = enabledColor;
bool allDates = tglswtchAllDates.IsOn;
datePickerFrom.Enabled = !allDates;
datePickerTo.Enabled = !allDates;
if (allDates)
{
txtblckDateFrom.Foreground = disabledColor;
txtblckDateTo.Foreground = disabledColor;
txtblckInclusive.Foreground = disabledColor;
}
}
... но при этом я получаю всевозможные ошибки компиляции, такие как "Невозможно преобразовать тип 'Windows.UI.Color' в 'Windows.UI.Xaml.Media.Brush'" "и "Невозможно неявно преобразовать тип 'Windows.UI.Color' в 'Windows.UI.Xaml.Media.Brush'" и "'Windows.UI.Xaml.Controls.DatePicker' не содержать определение для Enabled и не может быть найден метод расширения Enabled, принимающий первый аргумент типа Windows.UI.Xaml.Controls.DatePicker (вам не хватает директивы using или ссылки на сборку?) em > "
Итак, каков проверенный и верный - или, по крайней мере, теоретически разумный - способ добиться этого?
ОБНОВИТЬ
С помощью Филипа я:
private void tglswtchAllDates_Toggled(object sender, RoutedEventArgs args)
{
bool allDates = tglswtchAllDates.IsOn;
datePickerFrom.IsEnabled = !allDates;
datePickerTo.IsEnabled = !allDates;
if (allDates)
{
txtblckDateFrom.Opacity = 0.5;
txtblckDateTo.Opacity = 0.5;
txtblckInclusive.Opacity = 0.5;
}
else
{
txtblckDateFrom.Opacity = 1.0;
txtblckDateTo.Opacity = 1.0;
txtblckInclusive.Opacity = 1.0;
}
}
!(Color is Brush)
. :) - person Filip Skakun   schedule 08.11.2014