locked
changer couleur applicationBar RRS feed

  • Question

  • salut, est ce qu'il y a une possibilité de changer le couleur de la boutton de l'application bar en la pressant??

    Merci 


    zipo
    lundi 8 août 2011 12:33

Réponses

  • Je ne pense pas que l'on peut définir la couleur d'un bouton dans l'application bar ( c'est un ApplicationBarIconButton, et i lne possède pas cette propriété), la seule solution serait de redéfinir son style.

    Mais sinon la possibilité est de changer l'icon au moment du click avec la une autre image similaire mais cette image possédera un arrière plan différent.

    Je vais vous montrer un exemple simple qu iest a adapter selon vos besoins (par contre je prend des images existantes et donc elles ont là même couleur mais pas la même image (je suis pas designer ^^).

    <phone:PhoneApplicationPage.ApplicationBar>
        <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">
          <shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png" Text="Bouton 1" Click="ApplicationBarIconButton_Click"/>
          <shell:ApplicationBarIconButton IconUri="/Images/appbar_button2.png" Text="Bouton 2"/>
          <shell:ApplicationBar.MenuItems>
            <shell:ApplicationBarMenuItem Text="ÉlémentMenu 1"/>
            <shell:ApplicationBarMenuItem Text="ÉlémentMenu 2"/>
          </shell:ApplicationBar.MenuItems>
        </shell:ApplicationBar>
      </phone:PhoneApplicationPage.ApplicationBar>
    

    private void ApplicationBarIconButton_Click(object sender, EventArgs e)
        {
          ApplicationBarIconButton btn = sender as ApplicationBarIconButton;
          if (btn != null)
          {
            Uri uri = new Uri("/Images/appbar_button2.png", UriKind.RelativeOrAbsolute);
            btn.IconUri = uri;
          }
        }
    

     

     


    Cordialement, Pascal.

    Développeur Wpf/SilverLight/WinPhone7

    • Marqué comme réponse Zied Nassr mardi 9 août 2011 21:44
    mardi 9 août 2011 05:48

Toutes les réponses

  • Bonjour j'ai pas bien compris ta question.

    Tu veux changer la couleur de l'application en selectionnant l'application Bar ?

    Si c'est cela voici un exemple :

      x:Class="WindowsPhoneApplication8.MainPage"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
      xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
      mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
      FontFamily="{StaticResource PhoneFontFamilyNormal}"
      FontSize="{StaticResource PhoneFontSizeNormal}"
      Foreground="{StaticResource PhoneForegroundBrush}"
      SupportedOrientations="Portrait" Orientation="Portrait"
      shell:SystemTray.IsVisible="True">
    
      <!--LayoutRoot is the root grid where all page content is placed-->
      <Grid x:Name="LayoutRoot" Background="Transparent">
        <Grid.RowDefinitions>
          <RowDefinition Height="Auto"/>
          <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
    
        <!--TitlePanel contains the name of the application and page title-->
        <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
          <TextBlock x:Name="ApplicationTitle" Text="MY APPLICATION" Style="{StaticResource PhoneTextNormalStyle}"/>
          <TextBlock x:Name="PageTitle" Text="page name" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
        </StackPanel>
    
        <!--ContentPanel - place additional content here-->
        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"></Grid>
      </Grid>
     
      <!--Sample code showing usage of ApplicationBar-->
      <phone:PhoneApplicationPage.ApplicationBar>
        <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True" StateChanged="ApplicationBar_StateChanged" >
          <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.ApplicationBar>
    
    </phone:PhoneApplicationPage>
    

     

    private void ApplicationBar_StateChanged(object sender, Microsoft.Phone.Shell.ApplicationBarStateChangedEventArgs e)
        {
          
          if (e.IsMenuVisible)
          {
            ApplicationBar.BackgroundColor = Colors.DarkGray;
          }
          else
          {
            ApplicationBar.BackgroundColor = Colors.Black;
          }
        }
    

     

     

     


    Cordialement, Pascal.

    Développeur Wpf/SilverLight/WinPhone7

    lundi 8 août 2011 18:59
  • mon idée réside si je pourrais modifier la couleur d'un boutton de application bar lorsque l'utilisateur appuis  sur cette dernière 

    Merci


    zipo
    mardi 9 août 2011 01:04
  • Je ne pense pas que l'on peut définir la couleur d'un bouton dans l'application bar ( c'est un ApplicationBarIconButton, et i lne possède pas cette propriété), la seule solution serait de redéfinir son style.

    Mais sinon la possibilité est de changer l'icon au moment du click avec la une autre image similaire mais cette image possédera un arrière plan différent.

    Je vais vous montrer un exemple simple qu iest a adapter selon vos besoins (par contre je prend des images existantes et donc elles ont là même couleur mais pas la même image (je suis pas designer ^^).

    <phone:PhoneApplicationPage.ApplicationBar>
        <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">
          <shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png" Text="Bouton 1" Click="ApplicationBarIconButton_Click"/>
          <shell:ApplicationBarIconButton IconUri="/Images/appbar_button2.png" Text="Bouton 2"/>
          <shell:ApplicationBar.MenuItems>
            <shell:ApplicationBarMenuItem Text="ÉlémentMenu 1"/>
            <shell:ApplicationBarMenuItem Text="ÉlémentMenu 2"/>
          </shell:ApplicationBar.MenuItems>
        </shell:ApplicationBar>
      </phone:PhoneApplicationPage.ApplicationBar>
    

    private void ApplicationBarIconButton_Click(object sender, EventArgs e)
        {
          ApplicationBarIconButton btn = sender as ApplicationBarIconButton;
          if (btn != null)
          {
            Uri uri = new Uri("/Images/appbar_button2.png", UriKind.RelativeOrAbsolute);
            btn.IconUri = uri;
          }
        }
    

     

     


    Cordialement, Pascal.

    Développeur Wpf/SilverLight/WinPhone7

    • Marqué comme réponse Zied Nassr mardi 9 août 2011 21:44
    mardi 9 août 2011 05:48
  • Mchaka5, changer la couleur de ton bouton qd tu le presses ne servira à rien et surtout, c'est pas mal de soucis pour pas grand chose au final non ?

     

    L'applicationBar n'est pas vraiment silverlight, elle est en dehors de cela en fait (il suffit de voir sa reactivité par rapport au reste), lui changer son comportement sera une source de probleme futur


    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue
    mardi 9 août 2011 14:07