如何在windows phone 8应用程序中全球化一个页面内的多个应用程序栏



我正在开发windows phone 8应用程序。我有两个页面,一个有一个应用程序栏,第二个有三个应用程序条,根据情况隐藏和取消隐藏。除非我实现了本地化,否则一切都是对的。我按照下面的链接,在一个页面中应用ApplicationBar中的本地化并运行它。但当我以同样的方式将本地化应用到第二个有多个applicationBar的页面时,一切都失败了。没有任何应用程序栏可见。

我的代码根据这个链接点击这里查看链接

private void myfucntion()
{
ApplicationBar = new ApplicationBar();
ApplicationBarIconButton btnSortGridView = new ApplicationBarIconButton(new Uri("Images/grid.png", UriKind.Relative));
btnSortGridView.Text = AppResources.library_gridview;
ApplicationBar.Buttons.Add(btnSortGridView);
btnSortGridView.Click += btnSortGridView_Click;
ApplicationBarIconButton btnSortListView = new ApplicationBarIconButton(new Uri("/Images/list.png", UriKind.Relative));
btnSortListView.Text = AppResources.library_listview;
btnSortListView.Click += btnSortListView_Click;
ApplicationBar.Buttons.Add(btnSortListView);
}

您可以在上面看到ApplicationBar是ApplicationBar()的对象;当我按F12(见定义)时,它重定向到我的PhoneApplicationPage[从元数据],下面的属性被分配了相同的名称

public IApplicationBar ApplicationBar { get; set; }

所以我想说,如果我有一个单独的ApplicationBar具有Localitano,那么上面的方法将起作用,但如果我有多个ApplicationBar,那么这个方法将不起作用。请帮我你宝贵的建议。提前谢谢。

您可以通过为新变量创建一个新实例来完成创建第二个ApplicationBar。目前,您的代码正在设置ApplicationBar的页面实例(正如您的go to定义所示)。在代码中,将新实例分配给变量"secondBar">

private ApplicationBar CreateSecondBar()
{
ApplicationBar secondBar = new ApplicationBar();
ApplicationBarIconButton btnSortGridView = new ApplicationBarIconButton(new Uri("Images/grid.png", UriKind.Relative));
btnSortGridView.Text = AppResources.library_gridview;
btnSortGridView.Click += btnSortGridView_Click;
secondBar.Buttons.Add(btnSortGridView);
ApplicationBarIconButton btnSortListView = new ApplicationBarIconButton(new Uri("/Images/list.png", UriKind.Relative));
btnSortListView.Text = AppResources.library_listview;
btnSortListView.Click += btnSortListView_Click;
secondBar.Buttons.Add(btnSortListView);
return secondBar;
}

然后,当您想更改页面本身的ApplicationBar时,您可以调用该方法并从中设置。

var secondBar = CreateSecondBar();
// maybe you store this in a member variable "_secondBar" to be used whenever you need it
// using the this keyword to distinguish between the property, and the class
this.ApplicationBar = secondBar;

相关内容

  • 没有找到相关文章

最新更新