2014-05-23 45 views
-1

我想让头部用户控件应该在windows phone 8应用程序的所有页面的顶部可用。我不想在所有页面上声明此控件,功能将在不同的页面上相同。 它会像应用程序栏。那么,我应该在哪里声明或定义这种控制,以便达到上述目标?所有页面的公共控制

+0

很高兴告诉我们你打算做什么。请问一个问题。 [如何问一个好问题](http://stackoverflow.com/help/how-to-ask) – wonko79

回答

2

太好了。在这种情况下,您可以创建一个自定义用户控件。用所有必要的东西(按钮,图像等)创建你的酒吧。 在此用户控件本身中添加所有处理程序。现在你已经准备好了这个控制。您可以将此控件像任何其他控件一样添加到您希望拥有它的xaml页面上。它只需要你的名字空间出现在xaml中。

如:

xmlns:animateMenu="clr-namespace:AppNameSpace.Presentation" 

这个命名空间添加一次就会让你随时随地访问您的用户控制。使用 这样说:

<animateMenu:Menu x:Name="MyMenu"/> 

编辑 代码中的App.xaml

<shell:ApplicationBar x:Key="CommonAppBar" IsVisible="True"> 
      <shell:ApplicationBarIconButton IconUri="/Resources/Images/Appbar.btn1.png" Text="home" x:Name="abibtnHome" Click="ApplicationBarIconButton_Click"/> 
      <shell:ApplicationBarIconButton IconUri="/Resources/Images/Appbar.btn2.png" Text="search" x:Name="abibtnSearch" Click="ApplicationBarIconButton_Click"/> 
      <shell:ApplicationBarIconButton IconUri="/Resources/Images/Appbar.btn3.png" Text="call" x:Name="abibtnCall" Click="ApplicationBarIconButton_Click"/> 


      <!-- added for menus in the app bar--> 
      <shell:ApplicationBar.MenuItems>      
       <shell:ApplicationBarMenuItem x:Name="menuitemSettings" Text="menu1" Click="menu1_Click"/> 
       <shell:ApplicationBarMenuItem x:Name="menuitemAbout" Text="menu2" Click="menu2_Click"/> 
      </shell:ApplicationBar.MenuItems> 
</shell:ApplicationBar> 

希望这有助于放置。 感谢和欢呼。

+0

只要确保你不希望任何页面特定的功能发生在这个应用程序栏类型的菜单。即确保在所有页面上,他的应用栏的行为方式与目前的页面无关。否则,您还需要处理和管理xaml页面中的一些代码。 –

+0

我不想在每个页面上都创建这些实例。它会像我在某处宣称的那样,它会自动向所有页面推送 – loop

+0

即使对于默认应用栏,它也需要单独放置在每一页上。我可以建议你另一段代码。你可以在你的app.xaml中包含这段代码,并在app.xaml.cs中包含你的处理程序。 但是,您需要在所有xamls中单独添加它。我没有看到任何直接的方式,只有一个栏可以在所有页面上工作。 –

相关问题