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);

私の他のテキストボックスなどのために。何かアドバイス?

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 に答える