2015-05-25 13 views
5

stworzyłem Pivot projektu w Visual Studio 2013.data Format pokazano na DatePicker

I stworzył następującą kontrolę:

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

Kiedy dotknij go na moim telefonie, wyświetla datę jako M/D/Y. Czy można wyświetlić go jako D/M/Y?

Ponadto, nie wiem, czy powinienem utworzyć kolejne pytanie, ale jak mogę przetłumaczyć na pt-BR nazwy dzień/miesiąc pokazane w kontrolce? Jak również "Wybierz datę".

enter image description here

Odpowiedz

2

sformatować DatePicker jest za pomocą preferowanego języka i regionu użytkownika. Ta kontrola będzie automatycznie wyglądać inaczej, dla mojego regionu jest to dzień/miesiąc/rok, tak jak sobie tego życzysz. Próbowałem wymusić na kontrole użycie innego języka, ale wydaje się, że bierze to bezpośrednio z ustawień telefonu. Niektóre informacje można znaleźć tutaj na MSDN:

Jeśli chcesz, aby użytkownicy mogli wybrać datę lub wybrać czas, należy użyć daty i czasu standardowe kontrole Picker. Będą one automatycznie używać formatu daty i czasu dla preferowanego języka i regionu użytkownika.

Drugą złą wiadomością można znaleźć here at MSDN about formating that particular control:

Uwaga Sekcja ta dotyczy systemu Windows Store aplikacji przy użyciu C++, C# lub Visual Basic. Formatowanie jest ignorowane w aplikacjach Windows Phone Store.

W bieżącym interfejsie API może być trudno zmienić formatowanie.

Dobra wiadomość jest dla tekstu CHOOSE DATE u góry - jest automatycznie lokalizowana, w zależności od języka i regionu użytkownika. Nie musisz się tym martwić, jeśli Twoja aplikacja obsługuje język użytkownika. Ale nie znalazłem sposobu, aby zmienić go na inny tekst.

Co do tekstu wyświetlanego wewnątrz przycisku przed jego kliknięty, zawsze można użyć przycisk z DatePickerFlyout, prosty przykład odniesieniu do odpowiednich Przelicznik:

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

i klasy konwerter:

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

Korzystałem z telefonu za pomocą portugalskiego (język) i USA (region). Odinstalowałem aplikację, wyczyściłem rozwiązanie, zmieniłem region na Brazylię, zrestartowałem telefon i ponownie zainstalowałem aplikację. Nic się nie zmieniło. – GustavoMP

+0

@GustavoMP Sprawdź, który język jest pierwszy w Ustawieniach-> Językach. Sprawdź również, czy twoja aplikacja obsługuje 'pt-BR' - czy masz dla nich zasoby? Czy jest ustawiony jako dodatkowy język? – Romasz

+0

To wszystko. Zmieniono język w manifeście na pt-br i utworzyłem zasób. Wielkie dzięki. – GustavoMP