2015-05-25 13 views
5

ho creato un progetto Pivot su Visual Studio 2013.Data Format indicata sulla DatePicker

ho creato il seguente controllo:

<DatePicker Header="Data" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,10,0,0" Width="341"/> 

Quando si tocca su di esso sul mio cellulare, si visualizza la data come M/D/Y. È possibile visualizzarlo come D/M/Y?

Inoltre, non so se dovrei creare un'altra domanda, ma come posso tradurre in pt-BR i nomi del giorno/mese mostrati nel controllo? Così come "Scegli una data".

enter image description here

risposta

2

Il formato DatePicker sta utilizzando la lingua preferita dell'utente e regione. Questo controllo apparirà automaticamente diverso, per la mia regione è giorno/mese/anno come vorresti che fosse. Ho provato a forzare il controllo a utilizzare un altro linguaggio, ma sembra che lo stia prendendo direttamente dalle impostazioni del telefono. Alcune informazioni si possono trovare qui a MSDN:

Se è necessario per consentire agli utenti di scegliere una data o selezionare un tempo, utilizzare la data e l'ora controlli standard Picker. Questi utilizzeranno automaticamente i formati di data e ora per la lingua e la regione preferite dell'utente.

L'altra cattiva notizia è possibile trovare here at MSDN about formating that particular control:

Nota Questa sezione si applica a Windows Store applicazioni utilizzando C++, C# o Visual Basic. La formattazione viene ignorata nelle app di Windows Phone Store.

Quindi nell'API corrente può essere difficile modificare la formattazione.

La buona notizia è per il testo CHOOSE DATE in alto - è localizzato automaticamente, in base alla lingua e alla regione dell'utente. Quindi non devi preoccuparti se la tua app supporta la lingua dell'utente. Ma non ho trovato il modo di cambiarlo in un altro testo.

Per quanto riguarda il testo visualizzato all'interno del pulsante prima che sia cliccato, si può sempre usare Pulsante con DatePickerFlyout, un semplice esempio con convertitore apropriate:

<Button Content="{Binding ElementName=chosenDate, Path=Date, Converter={StaticResource DateFormatConverter}}"> 
    <Button.Flyout> 
     <DatePickerFlyout x:Name="chosenDate" /> 
    </Button.Flyout> 
</Button> 

e la classe convertitore:

public class DateFormatConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, string language) 
    { 
     DateTimeOffset chosen = (DateTimeOffset)value; 
     return string.Format("{0}/{1}/{2}", chosen.Day, chosen.Month, chosen.Year); 
     // or use chosen.ToString() with format provider 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, string language) { throw new NotImplementedException(); } 
} 
+0

Stavo correndo con il mio telefono usando portoghese (lingua) e USA (regione). Disinstallato l'app, pulita la soluzione, cambiato regione in Brasile, riavviato il telefono e reinstallato l'app. Non ho cambiato nulla. – GustavoMP

+0

@GustavoMP Si prega di verificare quale lingua è la prima in Impostazioni-> Lingue. Controlla anche se la tua app supporta 'pt-BR' - hai risorse per loro? È impostato come lingua aggiuntiva? – Romasz

+0

Ecco fatto. Modificata la lingua nel manifest in pt-br e creata la risorsa. Molte grazie. – GustavoMP