Creer un button avec image (WPF) par programmation pendant l'exécution [Résolu]

Messages postés
7
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
20 août 2010
- - Dernière réponse : hamadi_424
Messages postés
26
Date d'inscription
jeudi 1 mars 2007
Statut
Membre
Dernière intervention
16 octobre 2011
- 23 sept. 2010 à 11:30
Bonjour,
Voici mon code XAML ou se trouve un button déjà créé avec un label et une image :

Code XAML:
<StackPanel Orientation="Horizontal" Name="spLogin" >

<StackPanel Orientation="Vertical">
<Label Content="Model" />

</StackPanel>

</StackPanel>

pendant l'exécution du programme j'ajoute de nouveau bouton a mon StackPanel

Code C#:
private void AddLogIn(string pName)
{
Button bButton = new Button();
bButton.Width = 100;
bButton.Height = 100;
if (pName !null) { bButton.Name pName; }
spLogin.Children.Add(bButton);
bButton.Click += new RoutedEventHandler(newBtn_Click);
}

Malheureusement les bouton ajouté son des button standard sans image. Comment je doit faire pour ajouter des images a mes button que j'ajoute a mon StackPanel ? Est-ce que je dois travailler sur des style ou template dans le XAML ou bien je peux le faire dans le code C# ?
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
7
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
20 août 2010
3
Merci
Merci je commence a comprendre le principe de la propriété content maintenant !

BitmapImage biImage = new BitmapImage();
biImage.BeginInit();
biImage.UriSource = new Uri("C:\\APPS\\emp00001.jpg");
biImage.EndInit();

StackPanel spPanel new StackPanel() { Orientation System.Windows.Controls.Orientation.Vertical };
spPanel.Children.Add(new Label() { Content = "Cool !" });
spPanel.Children.Add(new Image() { Source = biImage });

bButton.Content = spPanel;


ah et j'ai trouvé la balise ^^

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 200 internautes nous ont dit merci ce mois-ci

Commenter la réponse de DCTerreur
Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
10
0
Merci
 
Button bButton = new Button(); 
bButton.Width = 100; 
bButton.Height = 100; 
if (pName !null) { bButton.Name pName; } 
spLogin.Children.Add(bButton); 
bButton.Click += new RoutedEventHandler(newBtn_Click);


Ne faudrait-il pas juste ajouter du contenu dans le bouton . Par exemple
bButton.Content new Image(){ Source "" };


PS : il existe des balises pour le code (c'est plus lisible)

---
Généralement le bug se situe entre le clavier et la chaise.
Le temps est une "chose" introuvable dont l'existence ne fait aucun doute.
Commenter la réponse de cs_GG29
Messages postés
26
Date d'inscription
jeudi 1 mars 2007
Statut
Membre
Dernière intervention
16 octobre 2011
0
Merci
Bonjour,
Je suis intéressé de votre idée donc j'ai essayé de créer un bouton de style portant une image nommé "ImageButtonStyle"
et voici le code que j'ai écrit si dessous mais il me reste un seul problème est que je veut que l'image que je vais utilisé porte une url static :
<Style x:Key="ImageButtonStyle" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<StackPanel Orientation="Horizontal">
<Label Content="Model" />

</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
elle marche bien avec une image portant une source (URL) static mais je veut que l'url soit dynamic.
Comment faire pour obtenir mon objectif? c'est ma question, aidez moi s'il vous plaît.
Cordialement.
Commenter la réponse de hamadi_424