0

我想更改边框 datepicker 的颜色,我看到了更改 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 错误,显然它无法检测到日期选择器在这行特定代码行中使用的文本框的边框。有什么建议吗?

4

1 回答 1

0

如果我正确理解您的意图,您会尝试进行一些数据验证并突出显示缺失的字段。下面的示例应该可以工作;没有必要比文本框部分看得更远

    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/在运行时查看可用的部件/属性 - 这将为您节省大量时间

于 2013-07-23T04:13:16.770 回答