Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > UserControl, Trigger, Storyboard


Автор: rubenhak 19.9.2008, 03:56
Привет всем!
У меня такая вот проблемка, никак не могу решить. Значит у меня UserControl у которого есть DependencyProperty - MyProperty. В UserControl-e некий прямоугольник. Так вот нужно нашать анимацию на прямоугольнике, когда значение MyProperty изменитя и примет какое-то значение. Пробовал добащить Style, Trigger, но никак не получается.

спасибо!

Автор: rooks 28.9.2008, 23:28
для того, чтобы анимация началасть должно возникнуть событие RoutedEvent? которое нужно написать самому(стандартные, типа MouseOver здесь видимо не катят)... я взял пример из хелпа и немного поправил:
Код

public class MyUserControl: UserControl
{
    private _SomeProperty
    public    SomeProperty MyProperty
    {
        get { return _SomeProperty; }
        set
        {
            _SomeProperty = value;
            if (_SomeProperty == thatsit)
                RaiseMyEvent();
        }
    }
    public static readonly RoutedEvent MyEvent = EventManager.RegisterRoutedEvent(
        "My", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(MyUserControl));

    public event RoutedEventHandler My
    {
            add { AddHandler(MyEvent, value); } 
            remove { RemoveHandler(MyEvent, value); }
    }

    void RaiseMyEvent()
    {
            RoutedEventArgs newEventArgs = new RoutedEventArgs(MyUserControl.MyEvent);
            RaiseEvent(newEventArgs);
    }
}


теперь в xaml-e нужно будет написать что-то вроде этого:
Код

                                    <EventTrigger RoutedEvent="MyUserControl.My">
                                        <BeginStoryboard>
                                            ...
                                        </BeginStoryboard>
                                    </EventTrigger>

P.S. писал не в студии, возможны ошибки.... сильно не бейте smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)