TimePicker.SelectedTime Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece la hora seleccionada actualmente en el selector de hora.
public:
property IReference<TimeSpan> ^ SelectedTime { IReference<TimeSpan> ^ get(); void set(IReference<TimeSpan> ^ value); };
IReference<TimeSpan> SelectedTime();
void SelectedTime(IReference<TimeSpan> value);
public System.Nullable<System.TimeSpan> SelectedTime { get; set; }
var iReference = timePicker.selectedTime;
timePicker.selectedTime = iReference;
Public Property SelectedTime As Nullable(Of TimeSpan)
Valor de propiedad
Hora seleccionada actualmente en el selector de hora.
Requisitos de Windows
Familia de dispositivos |
Windows 10, version 1809 (se introdujo en la versión 10.0.17763.0)
|
API contract |
Windows.Foundation.UniversalApiContract (se introdujo en la versión v7.0)
|
Ejemplos
Aquí, se usa la propiedad SelectedTime
para comparar la hora seleccionada con la hora actual.
Tenga en cuenta que, dado que la propiedad SelectedTime
admite valores NULL, tendrá que convertirla explícitamente en DateTime
, de esta manera: DateTime myTime = (DateTime)(DateTime.Today + checkTimePicker.SelectedTime);
.
<StackPanel>
<TimePicker x:Name="checkTimePicker"/>
<Button Content="Check time" Click="{x:Bind CheckTime}"/>
<TextBlock x:Name="resultText"/>
</StackPanel>
private void CheckTime()
{
// Using the SelectedTime property (nullable requires cast to DateTime).
DateTime myTime = (DateTime)(DateTime.Today + checkTimePicker.SelectedTime);
if (DateTime.Now >= myTime)
{
resultText.Text = "Your selected time has already past.";
}
else
{
string hrs = (myTime - DateTime.Now).Hours.ToString();
string mins = (myTime - DateTime.Now).Minutes.ToString();
resultText.Text = string.Format("Your selected time is {0} hours, {1} minutes from now.", hrs, mins);
}
}
Comentarios
El control de selector de hora tiene las API TimeChanged/ ySelectedTime
/SelectedTimeChanged. La diferencia entre ellas es que Time
no acepta valores NULL, mientras que SelectedTime
admite valores NULL.
El valor de SelectedTime
se usa para rellenar el selector de hora, y es null
de manera predeterminada. Si SelectedTime
es null
, la propiedad Time
se establece en una estructura TimeSpan de 0; de lo contrario, el valor Time
se sincroniza con el valor SelectedTime
. Cuando SelectedTime
es null
, el selector se "desconfigura" y muestra los nombres de campo en lugar de una hora.
El tiempo no aumentará en tiempo real (como lo haría un reloj), a menos que proporcione un enlace de código a algún valor que realice un seguimiento de la hora actual mientras se ejecuta la aplicación.
Puede establecer el valor de hora como atributo en XAML. Esto probablemente sea más fácil si ya declaras el objeto TimePicker en XAML y no usas enlaces para el valor de hora. Utilice una cadena con el formato Hh:Mm , donde Hh es horas y puede estar entre 0 y 23 y Mm es de minutos y puede estar entre 0 y 59. Un "0" puede ser el carácter inicial en Hh o Mm y normalmente se incluye para mayor claridad de los valores 0 a 9. Por ejemplo, "9:5" y "09:05" son válidos y representan la misma hora, pero "09:05" es más fácil de leer en el marcado.
Para establecer la hora en el código, tiene diferentes técnicas disponibles en función del lenguaje de programación. El valor se representa como System.TimeSpan para C# y Visual Basic, o Windows.Foundation.TimeSpan para extensiones de componentes de Visual C++ (C++/CX). Probablemente la manera más fácil de generar un valor System.TimeSpan adecuado para SelectedTime
es usar el método estático TimeSpan.Parse. Use una cadena con el formato Hh:Mm (horas:minutos).
Tanto si se establece en código como en XAML, la clase TimePicker tiene lógica de coerción para el valor que conserva al intentar establecerla. Los valores de días se omiten. Los valores de segundos se omiten (por ejemplo, los segundos de más de 30 no se redondean hasta el minuto siguiente). Se omiten las fracciones de segundo. Los valores no se ajustan (por ejemplo, un valor de "24:00" no es válido). El valor mínimo dentro TimeSpan
de es una hora de 0 (00:00, medianoche) y el valor máximo es 23:59. Los valores fuera del intervalo inician excepciones, pero dependiendo de los detalles, las excepciones pueden originarse en la TimeSpan
construcción en lugar de en la validación y la coerción de SelectedTime
.
Para establecer el SelectedTime
valor en extensiones de componentes de Visual C++ (C++/CX), establezca el Duration
campo de la estructura TimeSpan .
Duration
especifica una hora en 100 unidades nanosegundas; escriba su propia lógica para convertir a y desde representaciones horas:minutos.
Cualquier valor establecido para SelectedTime
en el código o XAML especifica el valor inicial que se muestra en el control. En la aplicación en tiempo de ejecución, el usuario suele establecer ese valor en el control flotante del selector de tiempo. La hora seleccionada por el usuario se establece y el evento SelectedTimeChanged se produce cuando el usuario realiza un cambio y presiona el botón de marca de verificación en el control flotante del selector de hora para confirmar su selección.