我需要一些帮助在一个页面上添加多个应用栏。目前我有Page A.在A中,这意味着两个appbars。一个用户专注于文本框(这将显示所有编辑工具等)的另一个用于当用户失去文本框的焦点时(这是用于保存和删除等一般控件)。
我不想为所有控件使用一个应用栏。我想分开,所以它更整洁。我知道this link但是为了做到这一点,我需要将它添加到App.xaml页面。有没有办法可以将它添加到Page A的xaml或任何代码上以使其工作。我尝试了下面的方法,但没有工作:
<phone:PhoneApplicationPage.Resources>
<shell:ApplicationBar x:Key="AppBar1" IsVisible="True" IsMenuEnabled="True">
<shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png" Text="Button 1"/>
<shell:ApplicationBar.MenuItems>
<shell:ApplicationBarMenuItem Text="MenuItem 1"/>
</shell:ApplicationBar.MenuItems>
</shell:ApplicationBar>
<shell:ApplicationBar x:Key="AppBar2" IsVisible="True" IsMenuEnabled="True">
<shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png" Text="Button 1" />
<shell:ApplicationBarIconButton IconUri="/Images/appbar_button2.png" Text="Button 2" />
<shell:ApplicationBar.MenuItems>
<shell:ApplicationBarMenuItem Text="MenuItem 1" />
<shell:ApplicationBarMenuItem Text="MenuItem 2" />
</shell:ApplicationBar.MenuItems>
</shell:ApplicationBar>
</phone:PhoneApplicationPage.Resources>
谢谢!
答案 0 :(得分:2)
很简单,将它们添加到页面的资源中:
<phone:PhoneApplicationPage.Resources>
<shell:ApplicationBar x:Key="AppBar1" IsVisible="True" IsMenuEnabled="True">
<shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png" Text="Button 1" Click="Button1_Click" />
<shell:ApplicationBar.MenuItems>
<shell:ApplicationBarMenuItem Text="MenuItem 1" Click="MenuItem1_Click" />
</shell:ApplicationBar.MenuItems>
</shell:ApplicationBar>
<shell:ApplicationBar x:Key="AppBar2" IsVisible="True" IsMenuEnabled="True">
<shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png" Text="Button 1" Click="Button1_Click" />
<shell:ApplicationBarIconButton IconUri="/Images/appbar_button2.png" Text="Button 2" Click="Button2_Click" />
<shell:ApplicationBar.MenuItems>
<shell:ApplicationBarMenuItem Text="MenuItem 1" Click="MenuItem1_Click" />
<shell:ApplicationBarMenuItem Text="MenuItem 2" Click="MenuItem2_Click" />
</shell:ApplicationBar.MenuItems>
</shell:ApplicationBar>
</phone:PhoneApplicationPage.Resources>
答案 1 :(得分:1)
您应该记住定义资源的位置。看看link you have provided资源与整个应用程序连接:
Application.Current.Resources["AppBar1"]);
如果您已将App.xaml中的资源定义为Application.Resources
,则代码将起作用 - 然后您定义的AppBars将可用于所有页面。
在您的代码中,您已定义PhoneApplicationPage.Resources
,因此它们仅适用于该特定页面。你可以在这个页面上使用它们,例如:
ApplicationBar = this.Resources["AppBar1"] as ApplicationBar;