Blend 4 Beta: как изменить источник изображения как часть временной шкалы

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

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

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

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

Это баг бленда или я что-то не так делаю?


person RoyOsherove    schedule 28.04.2010    source источник
comment
Почему вы не можете просто иметь 2 изображения и изменить видимость/непрозрачность на одном из них?   -  person Alan Mendelevich    schedule 28.04.2010
comment
У меня была та же проблема, но я просто вручную закодировал XAML. :-(   -  person Christopher Bennage    schedule 28.04.2010


Ответы (2)


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

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

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

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

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

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

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

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

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

person Rui Marinho    schedule 28.04.2010
comment
Вопросы были о том, чтобы сделать это, не прибегая к коду. - person Alan Mendelevich; 28.04.2010