Domanda

Voglio fare un controllo utente che mostra un'immagine e può richiamare un comando quando si fa clic. Più tardi voglio associare un elenco di questi controlli per un elenco di prodotti.

È stato utile?

Soluzione

Prova questo approccio molto semplice

<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
        }

Altri suggerimenti

Bene, dopo un po 'di più giocherellare, un semplice pulsante fa il lavoro. Eccolo:

<Button Command="{Binding Path=DisplayProductCommand}" >
   <Image Source="..\Images\my-beautiful-product.jpg"/>
</Button>

Ci sono diversi modi per farlo, ma una soluzione semplice sarebbe quella di utilizzare un pulsante (forse stile via il bordo e lo sfondo), e utilizzare l'immagine come il contenuto del pulsante.

È possibile successivamente utilizzare un ListBox o simili, e ignorare il DataTemplate utilizzare il pulsante e un'immagine per ogni prodotto.

   <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
    }

Non so voi ragazzi, ma PreviewMouseDown e TouchUp funzionato completamente bene insieme con la mia associazione:

<Image x:Name="bla" Source="{Binding blabla}" ... TouchDown="bla_TouchDown" PreviewMouseDown="bla_PreviewMouseDown">

Sto usando VS 2015

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top