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.

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top