Установить пользовательское прикрепленное свойство на StoryBoard - PullRequest
4 голосов
/ 22 сентября 2011

У меня есть раскадровка, и я хотел бы установить присоединенное свойство VisualStateUtility.InitialState. Я пробовал различные комбинации, но свойство никогда не было решено.

Я получаю следующую ошибку: Не удалось разрешить TargetProperty (VisualStateUtility.InitialState)

Как установить значение моего пользовательского присоединенного свойства на раскадровке?

<ObjectAnimationUsingKeyFrames Duration="0" Storyboard.TargetProperty="(Fully.Qualified.Namespace.VisualStateUtility.InitialState)"  Storyboard.TargetName="ExpanderButton">

    public static string GetInitialState(DependencyObject obj)
    {
        return (string)obj.GetValue(InitialStateProperty);
    }

    public static void SetInitialState(DependencyObject obj, string value)
    {
        obj.SetValue(InitialStateProperty, value);
    }

    // Using a DependencyProperty as the backing store for InitialState.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty InitialStateProperty =
        DependencyProperty.RegisterAttached("InitialState", typeof(string), typeof(VisualStateUtility), new PropertyMetadata(null,OnInitialStatePropertyChanged));

Ответы [ 2 ]

1 голос
/ 18 января 2012

Это должно сработать

<ObjectAnimationUsingKeyFrames x:Name="animation" Duration="0" Storyboard.TargetProperty="xmlnsAlias:VisualStateUtility.InitialState"  Storyboard.TargetName="ExpanderButton">

Обратите внимание, как имя добавляется в анимацию, скобки удаляются из имени целевого свойства, которому затем присваивается префикс xmlns из заголовка xaml.

В своем коде вы должны добавить это:

InitializeComponent();
Storyboard.SetTargetProperty(animation, new PropertyPath(Fully.Qualified.Namespace.VisualStateUtility.InitialState));

Очевидно, этот последний шаг необходим для анимации пользовательских прикрепленных свойств. Настоящая боль, если вы спросите меня.

0 голосов
/ 04 октября 2011

Я столкнулся с этим:

http://forums.silverlight.net/t/182227.aspx

Какой другой пользователь говорит, что он не поддерживается.

Фрэнк Лан пишет:

Привет, Это известная проблема. И обходной путь, по-видимому, заключается в следующем: анимируйте пользовательское присоединенное свойство из кода вместо xaml. Приносим извинения за неудобства, вызванные этой проблемой. Фрэнк Лан Поддержка Microsoft Online Community

...