Локализация по умолчанию Windows Phone выбора даты - PullRequest
0 голосов
/ 15 февраля 2012

Я локализовал все приложение, но не смог локализовать средство выбора даты. Немного поиска в форуме дал мне несколько ответов как этот

но я не могу найти папку свойств с resx для различных языков для инструментария! Я добавил ссылку на инструментарий в обозревателе решений по ссылке и теперь могу получить доступ к средству выбора даты. Я создал папку с именем toolkit.content, чтобы поместить и отменить изображения.

как мне добавить resx для средства выбора даты из набора инструментов: (

Ответы [ 3 ]

2 голосов
/ 26 апреля 2013

Вы также можете создать пользовательский элемент управления, который наследует от исходного DatePicker.

 public class MyDatePicker : Microsoft.Phone.Controls.DatePicker
{
    public string PickerPageHeader
    {
        get { return (string)GetValue(PickerPageHeaderProperty); }
        set { SetValue(PickerPageHeaderProperty, value); }
    }

    // Using a DependencyProperty as the backing store for PickerPageHeader.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty PickerPageHeaderProperty =
        DependencyProperty.Register("PickerPageHeader", typeof(string), typeof(MyDatePicker)
        , new PropertyMetadata("Choose date text in your language"));

    public MyDatePicker()
    {
        base.PickerPageUri = new Uri("/Sample;component/CustomControls/MyDatePickerPage.xaml?Header=" + PickerPageHeader, UriKind.Relative);
       //Don't forget to change the project name and xaml location
    }
}

И создайте файл xaml страницы выбора в папке CustomControls:

<toolkit:DatePickerPage
x:Class="Sample.MyDatePickerPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
/>

Код позади:

public partial class MyDatePickerPage : Microsoft.Phone.Controls.DatePickerPage
{
    public MyDatePickerPage ()
    {
        InitializeComponent();

        foreach (var item in base.ApplicationBar.Buttons)
        {
            IApplicationBarIconButton button = item as IApplicationBarIconButton;
            if (null != button)
            {
                if ("DONE" == button.Text.ToUpper())
                {
                    button.Text = "done in your language";
                }
                else if ("CANCEL" == button.Text.ToUpper())
                {
                    button.Text = "cancel in your language";
                }
            }
        }
    }

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        (base.FindName("HeaderTitle") as TextBlock).Text = e.Uri.OriginalString.Substring(e.Uri.OriginalString.IndexOf("Header=") + 7);
        base.OnNavigatedTo(e);
    }
}
1 голос
/ 16 февраля 2012

Вы должны получить исходный код для ToolKit и перестроить его с вашей локализацией

WP7 ToolKit Source

0 голосов
/ 19 мая 2014

Все очень просто: параметр - язык. Код XAML:

<toolkit:DatePicker Language="ru-RU" Margin="-12, 0" Value="{Binding BirthDate, Mode=TwoWay}" />
...