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

DCTerreur 7 Messages postés jeudi 16 juin 2005Date d'inscription 20 août 2010 Dernière intervention - 13 avril 2010 à 23:04 - Dernière réponse : hamadi_424 26 Messages postés jeudi 1 mars 2007Date d'inscription 16 octobre 2011 Dernière intervention
- 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 

Votre réponse

3 réponses

Meilleure réponse
DCTerreur 7 Messages postés jeudi 16 juin 2005Date d'inscription 20 août 2010 Dernière intervention - 14 avril 2010 à 14:39
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 ^^

Merci DCTerreur 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de DCTerreur
cs_GG29 327 Messages postés vendredi 23 décembre 2005Date d'inscription 8 février 2011 Dernière intervention - 14 avril 2010 à 01:13
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
hamadi_424 26 Messages postés jeudi 1 mars 2007Date d'inscription 16 octobre 2011 Dernière intervention - 23 sept. 2010 à 11:30
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.