Création d'une image cliquable dans WPF
-
01-10-2019 - |
Question
Je veux faire un contrôle utilisateur qui montre une image et peut invoquer une commande lorsque vous cliquez dessus. Plus tard, je veux lier une liste de ces contrôles à une liste de produits.
La solution
Essayer cette approche très avant droit
<Grid>
<Button Height="50" Width="50">
<Button.Template>
<ControlTemplate>
<Image Source="yourimage.png"/>
</ControlTemplate>
</Button.Template>
</Button>
</Grid>
private void Button_Click(object sender, RoutedEventArgs e)
{
// do smt
}
Autres conseils
Eh bien, après un peu plus tripoter, un simple bouton fait le travail. Ici, il est:
<Button Command="{Binding Path=DisplayProductCommand}" >
<Image Source="..\Images\my-beautiful-product.jpg"/>
</Button>
Il y a plusieurs façons de le faire, mais une solution simple serait d'utiliser un bouton (peut-être le style loin de la frontière et arrière-plan), et utiliser l'image comme le contenu du bouton.
Vous pouvez ensuite utiliser un ListBox ou similaire, et remplacer le DataTemplate d'utiliser le bouton et une image pour chaque produit.
<Image Name="imageFoo" Source="/AppFoo;component/Foo.png" Width="32" Cursor="Hand" MouseUp="imageFoo_MouseUp"/>
private void imageFoo_MouseUp(object sender, MouseButtonEventArgs e)
{
//Do something
}
Je ne sais pas pour vous les gars, mais PreviewMouseDown
et TouchUp
ont travaillé tout à fait bien avec ma fixation:
<Image x:Name="bla" Source="{Binding blabla}" ... TouchDown="bla_TouchDown" PreviewMouseDown="bla_PreviewMouseDown">
Je suis en utilisant VS 2015