Partilhar via


TimePicker.SelectedTime Propriedade

Definição

Obtém ou define a hora selecionada no momento no seletor de tempo.

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 da propriedade

A hora selecionada no momento no seletor de hora.

Requisitos do Windows

Família de dispositivos
Windows 10, version 1809 (introduzida na 10.0.17763.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v7.0)

Exemplos

Aqui, a propriedade SelectedTime é usada para comparar a hora selecionada com a hora atual.

Observe que, como a propriedade SelectedTime pode ser nula, você precisa convertê-la explicitamente para DateTime, da seguinte forma: DateTime myTime = (DateTime)(DateTime.Today + checkTimePicker.SelectedTime);.

Um seletor de tempo, um botão e um rótulo de texto.

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

Comentários

O controle de seletor de tempo tem as APIsTimeChanged/ e SelectedTime/SelectedTimeChanged. A diferença entre eles é que Time não permite valor nulo, ao passo que SelectedTime permite valor nulo.

O valor de SelectedTime é usado para preencher o seletor de tempo e corresponde a null por padrão. Se SelectedTime for null, a propriedade Time será definida como um TimeSpan igual a 0. Caso contrário, o valor de Time será sincronizado com o valor SelectedTime. Quando SelectedTime for null, o seletor será definido como 'unset' e vai mostrar os nomes dos campos em vez do tempo.

O tempo não será incrementado em tempo real (como um relógio faria), a menos que você forneça uma associação de código a algum valor que acompanhe a hora atual enquanto o aplicativo está em execução.

Você pode definir o valor temporal como um atributo em XAML. Isso provavelmente será mais fácil se você já estiver declarando o objeto TimePicker em XAML e não estiver usando associações para o valor de tempo. Use uma cadeia de caracteres no formato Hh:Mm em que Hh é horas e pode estar entre 0 e 23 e Mm é minutos e pode estar entre 0 e 59. Um "0" pode ser o caractere inicial em Hh ou Mm e normalmente é incluído para maior clareza de quaisquer valores de 0 a 9. Por exemplo, "9:5" e "09:05" são válidos e representam o mesmo tempo, mas "09:05" é mais fácil de ler na marcação.

Para definir o tempo no código, você tem técnicas diferentes disponíveis dependendo da linguagem de programação. O valor é representado como System.TimeSpan para C# e Visual Basic ou Windows.Foundation.TimeSpan para extensões de componente do Visual C++ (C++/CX). Provavelmente, a maneira mais fácil de produzir um valor System.TimeSpan apropriado para SelectedTime é usar o método estático TimeSpan.Parse. Use uma cadeia de caracteres no formato Hh:Mm (horas:minutos).

Seja definido em código ou XAML, a classe TimePicker tem lógica de coerção para o valor que preserva quando você tenta defini-lo. Todos os valores de dias são ignorados. Os valores de segundos são ignorados (por exemplo, segundos acima de 30 não são arredondados para o próximo minuto). Segundos fracionários são ignorados. Os valores não são encapsulados (por exemplo, um valor de "24:00" é inválido.) O valor mínimo dentro de TimeSpan é um tempo de 0 (00:00, meia-noite) e o valor máximo é 23:59. Valores fora do intervalo geram exceções, mas dependendo das especificidades, as exceções podem ter origem TimeSpan na construção, em vez de validação e coerção de SelectedTime.

Para definir o SelectedTime valor em extensões de componente do Visual C++ (C++/CX), defina o Duration campo da estrutura TimeSpan . Duration especifica um tempo em 100 unidades de nanossegundos; escreva sua própria lógica para converter de e para representações de horas:minutos.

Qualquer valor definido para SelectedTime no código ou XAML está especificando o valor inicial mostrado no controle . No aplicativo em runtime, esse valor normalmente é definido pelo usuário no submenu do seletor de tempo. A hora selecionada pelo usuário é definida e o evento SelectedTimeChanged ocorre quando o usuário faz uma alteração e pressiona o botão de marca de marcar no submenu do seletor de tempo para confirmar sua seleção.

Aplica-se a