Pregunta

Quiero hacer un control de usuario que muestra una imagen y puede invocar un comando cuando se hace clic. Más tarde quiero enlazar una lista de estos controles para una lista de productos.

¿Fue útil?

Solución

Prueba este enfoque muy sencillo

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

Otros consejos

Bueno, después de un poco más tocar el violín, un simple botón hace el trabajo. Aquí está:

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

Hay varias maneras de hacer esto, pero una solución sencilla sería utilizar un botón (tal vez el estilo de distancia del borde y el fondo), y el uso de la imagen como el contenido del botón.

Se puede utilizar después un ListBox o similares, y anular el DataTemplate utilizar el botón y una imagen para cada producto.

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

Yo no sé ustedes, pero PreviewMouseDown y TouchUp trabajaron completamente bien junto con mi unión:

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

Estoy utilizando VS 2015

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top