Blend 4 Beta: Как изменить источник изображения как часть временной шкалы - PullRequest
3 голосов
/ 28 апреля 2010

Я пробую Blend 4 beta и ищу способ сделать простую вещь:

  • Когда мышь наводится на изображение, изображение должно изменить свой источник на другое изображение. Когда происходит MouseLeave, изображение меняется обратно.

Я знаю Я могу сделать это в исходном коде, но я ищу свободный от кода способ сделать это без ручного кодирования xaml.

Смесь 4 кажется идеальной подгонкой. Но я пытался установить это, используя триггеры событий, которые запускают истории, или используя визуальные состояния, но Blend, похоже, не «помнит», что источник изображения изменился. Он помнит, как я менял другие свойства изображения (такие как видимость, масштаб и т. Д.), Но я искал источник изображения.

Это ошибка в смеси или я что-то не так делаю?

Ответы [ 2 ]

2 голосов
/ 28 апреля 2010

Один из вариантов - создание собственного действия и его прикрепление к изображению. Он по-прежнему включает в себя код, но довольно смешной.

public class ImageSwitchAction : TriggerAction<Image>   
{
    public ImageSource TargetImage { get; set; }
    protected override void Invoke(object o)
    {
        AssociatedObject.Source = TargetImage;
    }
}

После добавления класса в проект и сборку вы можете перетащить новое поведение на любые объекты изображения на временной шкале и настроить триггер и ImageSource в свойствах действия. В вашем случае добавьте одно действие для MouseEnter и одно для MouseLeave.

0 голосов
/ 28 апреля 2010

простой способ:

сначала подпишитесь на события вашего изображения указатель мыши и указатель мыши затем в этих событиях

используйте image.setsource (новый Uri (новый URL-адрес изображения)), чтобы установить источник изображения для каждого события

если у вас есть проблемы, я могу выложить реальный код здесь

С уважением Руи

...