Я использовал следующий код, чтобы отобразить текущую дату / время (время создания экземпляра .exe), то есть меньше одного дня в первых средствах выбора даты и TextBlock, а затем текущую дату / время в следующих средствах выбора даты и TextBlock:
XAML:
<StackPanel Orientation="Horizontal" >
<Label>Between</Label>
<DatePicker Name="dtpFrom" ></DatePicker>
<TextBlock Name="timeFrom" MinWidth="60" Text="{Binding Date, StringFormat={}{hh:mm: tt}}" />
<Label>and</Label>
<DatePicker Name="dtpTo"></DatePicker>
<TextBlock Name="timeTo"
MinWidth="60"
Text="{Binding Date, StringFormat={}{hh:mm: tt}}" />
</StackPanel>
C #:
int dtHour = DateTime.Now.Hour;
int dtMinute = DateTime.Now.Minute;
int dtSecond = DateTime.Now.Second;
dtpFrom.SelectedDate = DateTime.Now.AddDays(-1);
timeFrom.Text = String.Format("{0}:{1}:{2}", dtHour, dtMinute, dtSecond);
timeTo.Text = String.Format("{0}:{1}:{2}", dtHour, dtMinute, dtSecond);
dtpTo.SelectedDate = DateTime.Now;
Отображает точное время в TextBlocks; но это не редактируется. Поэтому я изменил TextBlocks на TextBoxes. Теперь значения времени не отображаются вообще ...
~~~~~~~~~~~~~~~~~~~~~~
Изменено:
Я исправил это (хотя, несомненно, немного клудгилы) с этим кодом:
int dtHour = DateTime.Now.Hour;
int dtMinute = DateTime.Now.Minute;
int dtSecond = DateTime.Now.Second;
string strHour = string.Empty;
string strMinute = string.Empty;
string strSecond = string.Empty;
if (dtHour < 10)
{
strHour = string.Format("0{0}", dtHour.ToString());
}
else
{
strHour = dtHour.ToString();
}
if (dtMinute < 10)
{
strMinute = string.Format("0{0}", dtMinute.ToString());
}
else
{
strMinute = dtMinute.ToString();
}
if (dtSecond < 10)
{
strSecond = string.Format("0{0}", dtSecond.ToString());
}
else
{
strSecond = dtSecond.ToString();
}
dtpFrom.SelectedDate = DateTime.Now.AddDays(-1);
timeFrom.Text = String.Format("{0}:{1}:{2}", strHour, strMinute, strSecond);
timeTo.Text = timeFrom.Text; //String.Format("{0}:{1}:{2}", strHour, strMinute, strSecond);
dtpTo.SelectedDate = DateTime.Now;
... и этот xaml (пришлось убрать форматирование "модных штанов"):
<StackPanel Orientation="Horizontal" >
<Label>Between</Label>
<DatePicker Name="dtpFrom" ></DatePicker>
<TextBox Name="timeFrom" MinWidth="60" />
<Label>and</Label>
<DatePicker Name="dtpTo"></DatePicker>
<TextBox Name="timeTo"
MinWidth="60" />
</StackPanel>