web-dev-qa-db-fra.com

Modèle de bouton avec image et texte dans WPF

Je souhaite créer des boutons avec des images et du texte à l'intérieur. Par exemple, j'utiliserais différentes images et texte pour les boutons tels que "Parcourir les dossiers" et "Importer". Une des options serait d'utiliser un modèle. J'ai regardé la question similiaire

Création d'une image + bouton de texte avec un modèle de contrôle?

Mais y a-t-il un moyen par lequel je peux lier la source d'image sans utiliser de propriété de dépendance ni d'une autre classe?

Merci

12
Archie

Non, que voudriez-vous lier le Image.Source à? Vous avez besoin d'une dépendanceProperty pour cela. Bien sûr, vous pouvez également définir une classe normale qui contient deux propriétés: Text et ImageSource ou Uri, puis utilisez une base de données pour rendre des instances de cette classe, mais serait encore plus de code à écrire et c'est un peu "malodorant".

Quelle est la raison pour laquelle vous ne voulez pas utiliser une propriété de dépendance ou une classe personnalisée?

3
gehho

J'ai ajouté quelques choses pour les aligner bien

<Button>
   <StackPanel Orientation="Horizontal">
       <Image Source="/ApplicationName;component/Images/MyImage.ico"/>
       <Label Padding="0">My Button Text</Label>
   </StackPanel>
</Button>
15
Sean
    <Button>
        <StackPanel Orientation="Horizontal">
            <Image Source="Resources/add.png" Stretch="None" />
            <TextBlock Margin="5,0,0,0">Add</TextBlock>
        </StackPanel>
    </Button>
7
mpen
<Button x:Name="MyCoolButton"Width="200" Height="75">
<Grid >
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <Image Source="Pete-Brown-Silverlight-in-Action.png" Margin="5" Grid.Column="0" />
    <StackPanel Grid.Column="1" Margin="5">
        <TextBlock Text="Buy My Book!" FontWeight="Bold" />
        <TextBlock Text="Pete is writing THE Silverlight 4 book" TextWrapping="Wrap" />
    </StackPanel>
</Grid>
5
daniel

Pour moi, le iconbutton de la boîte à outils Xece WPF (Freeware) fait l'affaire.

0
marsh-wiggle