2010-10-24 3 views
1

Je plaisantais avec cette barre d'applications de Windows Phone 7 quand j'ai remarqué que même définir une barre d'application différente dans XAML ne la ferait pas changer à travers différentes pages d'application (ce qui est assez ennuyeux je dois dire). Mon intention est d'utiliser cette barre avec certains boutons qui changent en fonction de la page affichée, disons, dans le menu principal, elle ne montrera pas l'icône du menu principal, mais dans une autre page elle le fera. Pouvez-vous me fournir de l'aide?Comment définir la barre d'application à ne pas afficher ou afficher d'autres boutons dans différentes pages de Windows Phone 7?

Page 1:

<phone:PhoneApplicationPage.ApplicationBar> 
     <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True"> 
      <shell:ApplicationBar.Buttons> 
       <shell:ApplicationBarIconButton IconUri="Icons/mainmenu.png" Text="Main Menu" /> 
       <shell:ApplicationBarIconButton IconUri="Icons/list.png" Text="Comic List" /> 
       <shell:ApplicationBarIconButton IconUri="Icons/settings.png" Text="Settings" IsEnabled="True" x:Name="ApplicationBarUploadIconButton" /> 
      </shell:ApplicationBar.Buttons> 

     </shell:ApplicationBar> 
    </phone:PhoneApplicationPage.ApplicationBar> 

Page 2:

<phone:PhoneApplicationPage.ApplicationBar> 
     <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True"> 
      <shell:ApplicationBar.Buttons> 
       <shell:ApplicationBarIconButton IconUri="Icons/settings.png" Text="Settings" /> 
       <shell:ApplicationBarIconButton IconUri="Icons/list.png" Text="Comic List" /> 
       <shell:ApplicationBarIconButton IconUri="Icons/download.png" Text="Download Comic" IsEnabled="True" x:Name="ApplicationBarUploadIconButton" /> 
      </shell:ApplicationBar.Buttons> 

     </shell:ApplicationBar> 
    </phone:PhoneApplicationPage.ApplicationBar> 

Page 3:

<phone:PhoneApplicationPage.ApplicationBar> 
     <shell:ApplicationBar IsVisible="False" IsMenuEnabled="False"> 
     </shell:ApplicationBar> 
    </phone:PhoneApplicationPage.ApplicationBar> 

La barre d'application est toujours le même et est toujours affiché (même avec cela explicite déclaration à la page 3 pour ne pas le montrer).

Merci d'avance!

Répondre

0

Vous pouvez en effet avoir un nombre différent de boutons dans la barre d'applications sur différentes pages. Si vous avez ajouté une barre d'application à une page et que vous voyez 4 zones arrondies vides dans chaque page, il n'y a rien à craindre - il s'agit uniquement de la vue du concepteur. À titre d'exemple, dans votre MainPage.xaml, vous pouvez avoir une barre d'application comme si -

<phone:PhoneApplicationPage.ApplicationBar> 
    <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True"> 
    <shell:ApplicationBarIconButton IconUri="/Images/appbar.refresh.rest.png" 
            Text="Refresh" 
            Click="RefreshPage_Click" /> 
    </shell:ApplicationBar> 
</phone:PhoneApplicationPage.ApplicationBar> 

Dans la page DetailsPage.xaml, vous pouvez avoir une barre d'application comme si -

<phone:PhoneApplicationPage.ApplicationBar> 
    <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True"> 
    <shell:ApplicationBarIconButton IconUri="/Images/appbar.home.png" 
            Text="Home" 
            Click="GoBackHome_Click" /> 
    <shell:ApplicationBarIconButton IconUri="/Images/appbar.next.rest.png" 
            Text="Next" 
            Click="NextPage_Click" /> 
    <shell:ApplicationBarIconButton IconUri="/Images/appbar.previous.rest.png" 
            Text="Next" 
            Click="PreviousPage_Click" /> 
    </shell:ApplicationBar> 
</phone:PhoneApplicationPage.ApplicationBar> 

HTH, indyfromoz

+0

Je l'ai fait, mais dans l'émulateur, tous les boutons sont exactement les mêmes et ont la même légende. –

+0

Alors, voyez-vous des boutons sans icônes? Combien de pages avez-vous dans votre application? Cela vous aidera si vous avez publié du code XAML depuis votre application. Les exemples dans ma réponse sont copiés à partir d'une application que j'ai construite et cela fonctionne bien sur l'émulateur et le matériel réel. Un gotcha est de définir l'action de construction à «contenu» pour les fichiers image de l'icône. – indyfromoz

+0

Ainsi, les images sont affichées, mais elles sont toujours les mêmes. Je posterai du XAML dans ma question pour que tu puisses comprendre. –

0

vous pouvez utiliser l'événement SelectionChanged du contrôle pour vérifier l'index selected de la page ...

private void Panorama_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
     if(panaroma.SelectedIndex == 1) //Your required page index 
      ApplicationBar.IsVisible = true; 
     else 
      ApplicationBar.IsVisible = false; // other pages will be hidden    
    } 
Questions connexes