Я хочу создать пользовательский элемент управления, который показывает изображение и может вызывать команду при нажатии. Позже я хочу связать список этих элементов управления со списком продуктов.
Попробуйте этот очень прямой подход
<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 }
Ну, после еще немного возни, простая кнопка делает свою работу. Вот оно:
<Button Command="{Binding Path=DisplayProductCommand}" > <Image Source="..\Images\my-beautiful-product.jpg"/> </Button>
Есть несколько способов сделать это, но одним простым решением было бы использовать кнопку (возможно, убрать границы и фон) и использовать изображение в качестве содержимого кнопки.позже используйте ListBox или аналогичный, и переопределите шаблон данных, чтобы использовать кнопку и изображение для каждого продукта.
<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 }
Я не знаю, как вы, ребята, но PreviewMouseDown и TouchUp отлично работали вместе с моим переплетом:
PreviewMouseDown
TouchUp
<Image x:Name="bla" Source="{Binding blabla}" ... TouchDown="bla_TouchDown" PreviewMouseDown="bla_PreviewMouseDown">
Я использую VS 2015