DatePicker コントロールと関連付けられた TextBlocks を含むフライアウトを使用して、ユーザーが日付範囲の基準を選択できるようにしています。「すべての日付を使用」トグルスイッチもあります。それが「オン」に設定されている場合は、日付範囲のコントロールを無効にするか、少なくとも無効になっているように見せたいと思います。
私はこのようにしてみました:
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 ディレクティブまたはアセンブリ参照がありませんか?) "
では、これを達成するための実証済みの、または少なくとも理論的には合理的な方法は何ですか?
アップデート
フィリップの助けを借りて、私は:
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;
}
}