2010-04-28 1 views
3

Я испытываю смесь 4 беты, и ищу способ, чтобы сделать простую вещь:Смешать 4 Beta: Как изменить источник изображения как часть временной шкалы

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

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

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

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

+0

Почему у вас нет только двух изображений и изменить видимость/непрозрачность на одном из них? –

+0

У меня была такая же проблема, но я только что закодировал XAML. :-( –

ответ

2

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

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

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

+3

Теперь, когда я думаю об этом, встроенный ChangePropertyAction делает то же самое. Добавьте его к своему изображению, установите триггер, выберите TargetObject (изображение) выберите PropertyName Source и установите его целевое значение. – Tosh

+0

можно все это сделать через blend? – RoyOsherove

+0

Я проверил, и это можно сделать в Blend. – RoyOsherove

-2

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

первых, подписаться на события мыши изображения ввода и мышь оставить то в этом события

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

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

рассматривает Руи

+1

Вопросы касались этого, не прибегая к коду. –