سؤال

أرغب في عمل عنصر تحكم مستخدم يعرض صورة ويمكنه استدعاء أمر عند النقر عليه. في وقت لاحق ، أريد ربط قائمة من عناصر التحكم هذه بقائمة من المنتجات.

هل كانت مفيدة؟

المحلول

جرب هذا النهج المستقيم إلى الأمام

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

هناك عدة طرق للقيام بذلك ، ولكن هناك حل واحد بسيط هو استخدام زر (ربما نمط الحدود والخلفية) ، واستخدام الصورة كمحتوى للزر.

يمكنك لاحقًا استخدام قائمة مربع أو ما شابه ، وتجاوز datatemplate لاستخدام الزر وصورة لكل منتج.

   <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 عملت بشكل جيد تمامًا مع ملزمة:

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

أنا أستخدم مقابل 2015

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top