Creazione di un'immagine cliccabile in WPF
-
01-10-2019 - |
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.
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