Frage

Ich möchte, dass zeigt ein Bild mit einer Benutzersteuerung machen und einen Befehl aufrufen, wenn darauf geklickt. Später möchte ich eine Liste von Produkten eine Liste dieser Kontrollen binden.

War es hilfreich?

Lösung

Versuchen Sie, diese sehr geradlinig Ansatz

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

Andere Tipps

Nun, nach ein wenig mehr Hantieren, eine einfache Taste macht die Arbeit. Hier ist sie:

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

Es gibt mehr Möglichkeiten, dies zu tun, aber eine einfache Lösung wäre, eine Taste zu verwenden (vielleicht Stil entfernt die Grenze und Hintergrund), und verwenden Sie das Bild als den Inhalt der Taste.

Sie können später eine List-Box oder ähnliches verwenden, und überschreiben Sie die Datatemplate auf die Schaltfläche verwenden und ein Bild für jedes Produkt.

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

Ich weiß nicht, wie es euch geht, aber PreviewMouseDown und TouchUp arbeiteten völlig in Ordnung zusammen mit meiner Bindung:

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

Ich bin mit VS 2015

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top