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 

3 réponses

Répondre au sujet
DCTerreur 7 Messages postés jeudi 16 juin 2005Date d'inscription 20 août 2010 Dernière intervention - 14 avril 2010 à 14:39
+3
Utile
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 ^^
Cette réponse vous a-t-elle aidé ?  
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
Utile
 
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
Utile
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.