2012-07-19 67 views
1

我试图本地化与WP7上的工具包关联的DatePicker和TimePicker,但我不确定如何访问标题和应用程序栏文本。我一直无法找到任何显示完成这些任务的方法的链接。有没有任何有用的链接,或有人有这么多的成就来源?如何在WP8中本地化DatePicker和TimePicker

回答

2
  1. 最简单的方法来下载源和工具包的最新版本的样品(2011年11月),其中有默认本地化DatePickerTimePicker
  2. 将它作为项目参考添加到您的解决方案中。

如果之前2011年11月该工具包的版本,

  1. 同样它在你的解决方案
  2. 在解决方案中添加作为项目引用在侧项目的无线工具包。添加必要的resx文件。您可以看到有一个默认的Resources.resx文件,其中包含日期选择器的英文文本。为其他语言添加必要的resx文件。
+0

我没有下载十一月发布与源并将其添加为我的项目的引用,但我DatePicker和TimePicker页面标题和应用栏图标不相应地进行翻译?另外,我尝试将ControlResources resx文件直接添加到我的解决方案中,然后构建解决方案,但是标题和应用程序栏图标再次无法正确转换。我究竟做错了什么? – Matthew 2012-07-23 20:58:23

+0

应用栏图标不会被翻译。但其他人会。你是否在支持的文化中包含了必要的语言?在LocalizedResources中,你会找到必要的resx吧?您尝试将哪种语言本地化? – alfah 2012-07-24 07:34:45

+0

我相信我所做的一切都正确无误,并且我正在翻译成WP7上所有支持的语言。我遵循这个教程http://msdn.microsoft.com/en-us/library/ff637520(v=vs.92),当我更改显示语言时,除了DatePicker和TimePicker字符串以外,所有字符串都能正确转换。 – Matthew 2012-07-24 23:59:30

1

这很简单:参数 - 语言。 XAML代码:

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

谢谢我会研究这个。我现在更新了我的问题的名称以包含WP8,可能会有所不同,我还没有机会使用DatePicker。 – Matthew 2014-05-21 12:31:05

0

而不修改XAML源另一个替代方案是修改“HeaderTitle” TextBlock的一旦页面加载。

/// <summary> 
    /// Called from app.xaml.cs if the user navigates to the DatePickerPage 
    /// </summary> 
    /// <param name="page">The page.</param> 
    public static void DatePickerHook(PhoneApplicationPage page) 
    { 
     // Somehow modify the text on the top of the page... 
     LoopThroughControls(page, (ui => { 
      var tb = ui as TextBlock; 
      if (tb != null && tb.Name == "HeaderTitle") 
      { 
       tb.Text = "<<Local Translation>>"; 
      } 
     })); 
    } 

    /// <summary> 
    /// Applies an action to every element on a page 
    /// </summary> 
    /// <param name="parent">The parent.</param> 
    /// <param name="modifier">The modifier.</param> 
    private static void LoopThroughControls(UIElement parent, Action<UIElement> modifier) 
    { 
     int count = VisualTreeHelper.GetChildrenCount(parent); 
     if (count > 0) 
     { 
      for (int i = 0; i < count; i++) 
      { 
       UIElement child = (UIElement)VisualTreeHelper.GetChild(parent, i); 
       modifier(child); 
       LoopThroughControls(child, modifier); 
      } 
     } 
     return; 
    } 

这里的链接,描述了app.xaml.cs也修改了博客文章:http://blog.dotnetframework.org/2015/11/09/localise-datepicker-in-wp8-silverlighttoolkit-using-hooks/