为日期选择器后端WPF的文本框上色

本文关键字:文本 WPF 日期 选择器 后端 | 更新日期: 2023-09-27 18:24:27

我想更改边框日期选择器的颜色,我在xaml代码中看到了更改的解决方案,但我想在后端更改它。

我的代码:

public static bool checkDate(DatePicker dpk)
{
   TextBox tb = (TextBox)dpk.Template.FindName("PART_TextBox", dpk);
   Border bd = (Border)tb.Template.FindName("Bd", tb);
   if (dpk.SelectedDate == null)
   {
       bd.BorderBrush = Brushes.Red;
       return false;
   }
   bd.BorderBrush = Brushes.Black;
   return true;
}

我使用没有问题

Border bd = (Border)tb.Template.FindName("Bd", tb);

但我在着色时遇到了一个nullException错误,显然它无法检测到日期选择器在这段代码中使用的文本框的边框。有什么建议吗?

为日期选择器后端WPF的文本框上色

如果我正确理解您的意图,您将尝试进行一些数据验证并突出显示缺失的字段。下面的示例应该有效;除了文本框部分,没有必要再看了

    public static bool checkDate(DatePicker dpk)
    {
        TextBox tb = (TextBox)dpk.Template.FindName("PART_TextBox", dpk);
        if (dpk.SelectedDate == null)
        {
            tb.BorderThickness = new Thickness(2);
            tb.BorderBrush = Brushes.Red;
            return false;
        }
        tb.BorderThickness = new Thickness(0);
        tb.BorderBrush = Brushes.Black;
        return true;
    }

将来,请尝试使用http://snoopwpf.codeplex.com/在运行时查看可用的零件/属性-这将为您节省大量时间