Tworzenie klikalnego obrazu w WPF

Chcę stworzyć kontrolkę użytkownika, która wyświetla obraz i może wywoływać polecenie po kliknięciu. Później chcę powiązać listę tych kontrolek z listą produktów.

Author: mico, 2010-04-27

5 answers

Spróbuj tego bardzo prostego podejścia

<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
        }
 48
Author: GibboK,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-06 08:03:45

Cóż, po trochę więcej majstrowania, prosty przycisk robi robotę. Tutaj jest:

<Button Command="{Binding Path=DisplayProductCommand}" >
   <Image Source="..\Images\my-beautiful-product.jpg"/>
</Button>
 9
Author: mico,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-27 15:47:21

Istnieje kilka sposobów, aby to zrobić, ale jednym prostym rozwiązaniem byłoby użycie przycisku (może Styl od obramowania i tła) i użycie obrazu jako zawartości przycisku.

Możesz później użyć Listboxa lub podobnego i zastąpić Datatematplate, aby użyć przycisku i obrazu dla każdego produktu.

 4
Author: code-zoop,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-04-27 10:46:59
   <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
    }
 3
Author: Hong,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-11-28 16:57:17

Nie wiem jak wy ale PreviewMouseDown i TouchUp zadziałały całkowicie dobrze wraz z moją oprawą:

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

Używam VS 2015

 1
Author: Khalil Khalaf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-06 14:55:31