none
Renommer un bouton de l'Appbar RRS feed

  • Question

  • Bonjour,

    Je cherche tout simplement à renommer un bouton de l'appbar.

    Prenons ce style du StandardStyles.xaml :

    <Style x:Key="AddAppBarButtonStyle" TargetType="Button" BasedOn="{StaticResource AppBarButtonStyle}">
            <Setter Property="AutomationProperties.AutomationId" Value="AddAppBarButton"/>
            <Setter Property="AutomationProperties.Name" Value="Add"/>
            <Setter Property="Content" Value=""/>
        </Style>

    sur ma page XAML :

    <Page.BottomAppBar>
            <AppBar x:Name="PageAppBar" Padding="10,0,10,0" IsOpen="True">
                <Grid>
                    <StackPanel x:Name="LeftCommands" Orientation="Horizontal" HorizontalAlignment="Left">
                        <Button x:Name="Add"  HorizontalAlignment="Left" Style="{StaticResource AddAppBarButtonStyle}" Click="Add_Click" />
                    </StackPanel>
                </Grid>
            </AppBar>
        </Page.BottomAppBar>

    Afin de changer l'icône et le nom, j'ai créer un second style, j'ai mis cela coté C# :

    private void Add_Click(object sender, RoutedEventArgs e)
            {
                isAdded = !isAdded;
    
                if (isAdded)
                    Add.Style = App.Current.Resources["AddAppBarButtonStyle"] as Style;
                else
                    Add.Style = App.Current.Resources["AddAppBarButtonStyle2"] as Style;
            }
    Cependant, pourquoi n'est-il pas possible, en placant x:Uid="Addbutton" dans la page et de l'utiliser comme cela : AddButton.Name="nouveau nom"; ?

    • Déplacé Florin Ciuca vendredi 7 septembre 2012 11:08 (Origine :Développement d’applications de style Metro pour Windows 8)
    vendredi 8 juin 2012 08:12

Réponses

  • Bonjour,

    Tu brûles, la méthode la plus simple consiste effectivement à utiliser un Uid et un fichier de ressources pour spécifier la valeur de l'attached property "AutomationProperties.Name".

    Step by step ça donne :

    • spécifier un uid pour ton boutton
    • créer un dossier pour chaque culture dans ta solution
    • créer un fichier resources.resw pour chaque culture dans chaque dossier de ta solution
    • créer une clé de resource sous le format : Uid.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name

    Exemple pour un bouton dont l'Uid est "home_accountButton" la clé de ressource sera la suivante :

    home_accountButton.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name

    Edit : j'aurai peut-être du préciser "la plus simple" supportant la localization . (explication ici)


    Cyprien Autexier


    vendredi 8 juin 2012 11:55

Toutes les réponses

  • Bonjour,

    Tu brûles, la méthode la plus simple consiste effectivement à utiliser un Uid et un fichier de ressources pour spécifier la valeur de l'attached property "AutomationProperties.Name".

    Step by step ça donne :

    • spécifier un uid pour ton boutton
    • créer un dossier pour chaque culture dans ta solution
    • créer un fichier resources.resw pour chaque culture dans chaque dossier de ta solution
    • créer une clé de resource sous le format : Uid.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name

    Exemple pour un bouton dont l'Uid est "home_accountButton" la clé de ressource sera la suivante :

    home_accountButton.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name

    Edit : j'aurai peut-être du préciser "la plus simple" supportant la localization . (explication ici)


    Cyprien Autexier


    vendredi 8 juin 2012 11:55
  • En effet, c'était pas loin.

    Merci Cyprien,

    Christophe

    vendredi 8 juin 2012 12:30